-
Posts
854 -
Joined
-
Last visited
-
Days Won
6
Everything posted by MR.GRAND
-
addEventHandler( 'onPlayerWasted', root, function ( _, killer ) if ( getElementType( killer ) == 'player' and killer ~= source ) then outputChatBox( getPlayerName( killer ) .. ' Has Killed ' .. getPlayerName( source ), root, 255, 0, 0, true ) end end )
-
getElementData -- جلب القيمة الخاصة بالشيء setElementData -- وضع قيمة لشيء معين executeSQLQuery -- امر قواعد البيانات , امر متعدد الوظائف source -- الهدف او الشيء اللي بنطبق عليه الشغلة يعني المصدر thePlayer -- متغير خاص تقدر انت تسويه ماله اساس باللغة for -- تستخدم للوب وبعض الشغلات in -- ايضا تستخدم في اللوب لتحديد شيء داخل شيء if -- اداة شرطية لتحديد حدوث الشرط وانعكاسه بـ else do -- خاصة باللوبات or -- هذي تجي بعد ارقمنت محدد اذا فرضا ماجاء او كانت قيمته مختلفة يسوي الشيء الثاني getRootElement -- يجيب كل الالمنت اللي موجودين بالسيرفر, تستخدم بالاحداث غالبا ..Name.. -- متغير ماله اساس تقدر تحطه لأشياء مختلفة then -- تجي بعد الشرطية if ليقوم بعدها بتنفيذ الاوامر return -- ارجاع قيمة محددة مثلا على سبيل المثال اسم الاعب
-
not setElementInterior to : setElementDimension
-
دام لي خبرة في فتح البورتات ومعي سيرفر خاص فيني فتح بورت وناس تدخله ومعروف طبعا ^ بالنسبة للي يقول سوي VPN خلك عارف انه يعتمد على سرعة نت الجهاز وطبعا لو سرعة نته ضعيف مارح يقدروآ الناس يدخلون ولو حاولوآ يدخلون يجيهم تايمد اوت او يصير لاق فضيع ^ + + اول خطوة اذا انت مومتأكد انك فاتح البورت بالطريقة الصحيحة روح لــ CMD ثم اكتب ipconfig وشوف IPv4 الاي بي الاصدار الرابع حقك وشوف Default gateaway طبعا وش الفايدة ؟ روح انسخ ال Default gateaway وادخل للراوتر ثم روح مكان فتح البورتات وتأكد ان الاي بي اللي فاتح عليه البورت هو نفسه اي بي جهازك اللي هو IPv4 بعد كذا لو كل شيء تمام روح موقع http://www.canyouseeme.org/ وحط كل بورت فاتحه وفحصه طبعا لازم تخلي شيء يستغل البورت المفتوح عشان يجيك انه مفتوح فعلا يعني انك تشغل mta-server.exe وللمعلومية انا الراوتر حقي الاي بي الافتراضي له كان 192.168.0.1 ومافتح البورت الا يوم غيرت الاي بي وسويته 100.100.100.20 بعد كل هالكلام لو ماضبط يعني الراوتر حقك مايسمح بفتح البورتات
-
يقدر هكذا ض local Group = "Console, [color=#FF0000]admin[/color]" بس للتوضيح هالطريقة مارح يقدر يضيف اكثر من رتبة يعني بهذي الحالة الرتبة اللي بالبداية فقط اللي راح تنعطي صلاحيات الشيء الاشياء اللي بعدها مثلا ادمن وغيرها مارح يقرأها الكود ولا راح يتطبق عليها شيء ^ كلام عن تجربة لا اكثر
-
Table = { { 'السلام عليكم', 'وعليكم السلام' } } for _, value in ipairs( Table ) do if string.find( sourceString, value[1] ) then . . . end end الحين هذا كود نفس كودك بعطيك مثال على ال string.find فــ بالحالة اللي موجودة راح يبحث بالقيمة value عن السترنق كامل : السلام عليكم بس لو نبيه حتى لو قال السلام بس تجي ؟ نسوي كذا Table = { { 'السلام', 'وعليكم السلام' } } فــ كذا راح يسوي string.find ولو تم ايجاد السترنق : السلام راح يسوي الشيء اللي تبغاه اتمنى انك فاهم والباقين عارفين هالشيء
-
محتاج مساعده بصنع لوحة نقل انا ما اعرف مليح للقريد ليست
MR.GRAND replied to likemike12's topic in البرمجة
guiGridListGetSelectedItem guiGridListGetItemText getPlayerFromName getElementPosition setElementPosition -
local start = getTickCount() GUIEditor = { label = {} } GUIEditor.label[1] = guiCreateLabel(754, 434, 602, 27, "هلا والله نورت , كيف حالك ي مزز", false) guiSetFont(GUIEditor.label[1], "default-bold-small") guiLabelSetHorizontalAlign(GUIEditor.label[1], "center", false) guiLabelSetVerticalAlign(GUIEditor.label[1], "center") function drawFirst() local now = getTickCount() local progress = (now - start) / ((start + 1500) - start) local x, y = interpolateBetween(1366, 434, 0, 754, 434, 0, progress, "OutBack") --dxDrawImage(x, y, 300, 300, "Image.jpg") guiSetPosition ( GUIEditor.label[1], x, y, false ) setTimer( function( ) removeEventHandler( 'onClientRender', root, drawFirst ) addEventHandler( 'onClientRender', root, function( ) local now = getTickCount() local progress = (now - start) / ((start + 1500) - start) local x, y = interpolateBetween(754, 434, 0, 1352, 434, 0, progress, "OutBack") guiSetPosition ( GUIEditor.label[1], x, y, false ) end ) end, 2000, 1 ) end addEventHandler( "onClientRender", root, drawFirst ) يفترض انه من السطر 20 وتحت يسوي الغاء للأنتر بوليت الأول والحدث كله ويحط حدث ترجيع مكان الليبل بنفس الطريقة اللي جاء بها بالأنتر بوليت لآكن انه يخفي الليبل اخفاء مايرجعه بالشكل اللي جاء به
-
كتبتها سريع ومانتبهت تم التعديل شكرا لك علي جهددك واتمنا تستمر سوال بس disableGUIbutton هدا ابددلها باسم زر تسوي بالكلنت حدث بالأسم هذا وتحط الفنكشن اللي يلغي تفعيل الزر مثال : addEvent( 'disableGUIbutton', true ) addEventHandler( 'disableGUIbutton ', root, function( ) guiSetEnabled( element Button, false ) end )
-
كتبتها سريع ومانتبهت تم التعديل
-
addEventHandler( 'onResourceStart', resourceRoot, function( ) for _, player in ipairs( getElementsByType('player') ) do local account = getPlayerAccount( player ) if ( account ~= isGuestAccount( account ) ) then triggerClientEvent( player, 'enableGUIbutton', player ) end end end ) addEventHandler( 'onPlayerLogin', root, function( ) triggerClientEvent( source, 'enableGUIbutton', source ) end ) addEventHandler( 'onPlayerLogout', root, function( ) triggerClientEvent( source, 'disableGUIbutton', source ) end ) لم يتم التجربة
-
Table = { -- جدول السيريالات اللي تبيه تتشفر ['serialString'] = true, } addEventHandler( 'onClientGUIClick', root, function( ) -- حدث الضغط على القريد لست if ( source == element gridList ) local gridlistSelected = guiGridListGetSelectedItem( element gridList ) -- جلب المحدد من القريد لست local playerName = guiGridListGetItemText( element gridList, gridlistSelected, int Column ) -- يجيب أسم الاعب من القريد لست if ( Table[getPlayerSerial( getPlayerFromName( playerName ) )] ) then -- يتحقق اذا سيريال الاعب اللي جابه نفسه اللي بالجدول guiSetText( element editBox, 'xxxxxxxxx' ) -- يحط النص للأيديت بوكس بشكل xxxxxxxxx end end end ) هذا مثال صغير سويته لك , + ماجربته شوفه وخذ منه الزبدهةء كيف تحط التشفيرة اللي تبيها
-
https://forum.multitheftauto.com/viewtopic.php?f=164&t=99321
-
I know, but ; فنكشن عناد اعرفه وشايفه من زمان ; بس الفنكشن حقي فيه تحققات اكثر واشياء محسنة + ماحد ضايفه للويكي فــ قلت اضيفه ونتمنى يتثبت حياك الله
-
guiGridListAddPlayers الوظيفة تقوم باضافة كل الاعبين الأون لاين بالسيرفر للقريد لست ; أعرف ان الوظيفة قديمة , ولاكن سويتها على طريقتي وبشكل مرتب وتحققات للتأكد من عمل الفنكشن Syntax - السنتاكس bool guiGridListAddPlayers ( element gridList, int columnIndex, bool section, bool number ) Required Arguments - الأرقمنات المطلوبة * gridList: The grid list element * columnIndex: Column ID * section: Determines if the item is a section * number: Tells whether the text item is a number value or not (used for sorting) Returns -- ارجاع القيمة Return all players in a grid list, false otherwise. - يقوم بأرجاع قيمة اسماء الاعبين بالقريد لست Code - كود الوظيفة function guiGridListAddPlayers( GridList, Column, Section, Number ) if( getElementType( GridList ) == "gui-gridlist" ) then assert( tonumber( Column ), "Bad argument @ 'guiGridListAddPlayers' [Expected number at argument 2, got " .. tostring(Column) .. "]" ) if( Section == false or Section == true ) then if( Number == false or Number == true ) then for _, player in ipairs( getElementsByType('player') ) do guiGridListClear( GridList ) local Row = guiGridListAddRow( GridList ) guiGridListSetItemText( GridList, Row, Column, getPlayerName(player), Section, Number ) end else error("Bad argument @ 'guiGridListAddPlayers' [Expected boolean at argument 4, got " .. tostring(Number) .. "]") end else error("Bad argument @ 'guiGridListAddPlayers' [Expected boolean at argument 3, got " .. tostring(Section) .. "]") end end end Example - مثال This example add all online players in the server to a grid list -- Grid list local screenW, screenH = guiGetScreenSize() Main_GridList = guiCreateGridList((screenW - 233) / 2, (screenH - 357) / 2, 233, 357, false) guiGridListAddColumn(Main_GridList, "Players", 0.9) guiSetVisible( Main_GridList, false ) -- For show Grid List bindKey( "F10", "down", function( ) guiSetVisible( Main_GridList, not guiGetVisible( Main_GridList ) ) showCursor( not isCursorShowing( ) ) end ) -- This command add all players to a grid list addCommandHandler( "addPlayers", function( ) guiGridListAddPlayers( Main_GridList, 1, false, false ) end ) Author: MR.GRAND Hint: This function can be useful, Shortcut way Add to the grid list of players. Wiki page : GuiGridListAddPlayers في أمان الله تعالى
-
قد مررت من هنا kamel1234128
-
[شرح] SQL-Structured Query Language | أوامر لغة الأس كيو ال
MR.GRAND replied to Mr.CoR's topic in دروس في البرمجة
كفو على الشرح الممتاز واصل يابطل شرح ابداعي ومعلومات جميلة ^.^ -
واخيرا رد شكرا بس ليش triggerClientEvent https://forum.multitheftauto.com/viewtopic.php?f=161&t=99581 هذا مود تاجات احترافي ومومشفر َ^ لو انك عارف الأساسيات ومتوسط الخبرة اتعلم منه
-
Client : function dxDrawTextOnElement(TheElement,text,height,distance,R,G,B,alpha,size,font,checkBuildings,checkVehicles,checkPeds,checkDummies,seeThroughStuff,ignoreSomeObjectsForCamera,ignoredElement) local x, y, z = getElementPosition(TheElement) local x2, y2, z2 = getElementPosition(localPlayer) local distance = distance or 20 local height = height or 1 local checkBuildings = checkBuildings or true local checkVehicles = checkVehicles or false local checkPeds = checkPeds or false local checkObjects = checkObjects or true local checkDummies = checkDummies or true local seeThroughStuff = seeThroughStuff or false local ignoreSomeObjectsForCamera = ignoreSomeObjectsForCamera or false local ignoredElement = ignoredElement or nil if (isLineOfSightClear(x, y, z, x2, y2, z2, checkBuildings, checkVehicles, checkPeds , checkObjects,checkDummies,seeThroughStuff,ignoreSomeObjectsForCamera,ignoredElement)) then local sx, sy = getScreenFromWorldPosition(x, y, z+height) if(sx) and (sy) then local distanceBetweenPoints = getDistanceBetweenPoints3D(x, y, z, x2, y2, z2) if(distanceBetweenPoints < distance) then dxDrawText(text, sx+2, sy+2, sx, sy, tocolor(R or 255, G or 255, B or 255, alpha or 255), (size or 1)-(distanceBetweenPoints / distance), font or "arial", "center", "center", _, _, _, true) end end end end local www = dxCreateFont("arial.ttf",13) function render() for i,k in ipairs (getElementsByType("player")) do if k ~= localPlayer and ( getElementData (k,"MASRIY") == '[Console]' or getElementData (k,"MASRIY") == '[Head Admin]' ) then dxDrawTextOnElement(k,getElementData (k,"MASRIY") or 'none',1,20,math.random(0, 255), math.random(0, 255), math.random(0, 255),255,1,www) else if k ~= localPlayer and ( getElementData (k,"MASRIY") ~= '[Console]' or getElementData (k,"MASRIY") ~= '[Head Admin]' ) then dxDrawTextOnElement(k,getElementData (k,"MASRIY") or 'none',1,20,0,0,255,255,1,www) end end end end setTimer( function() removeEventHandler( 'onClientRender', root, render ) addEventHandler( 'onClientRender', root, render ) end, 300, 0 ) Server : local Groups = { {'Console',"[Console]"}, {'Head.Admin',"[Head Admin]"}, } ; addEventHandler( 'onResourceStart', getResourceRootElement(), function( ) for _, i in ipairs( getElementsByType( 'player' ) ) do if ( getElementData ( i, 'MASRIY' ) ) then removeElementData ( i, 'MASRIY' ) end end end ) addEventHandler( 'onPlayerLogin', root, function( ) for _,v in ipairs (Groups) do if isObjectInACLGroup( 'user.'..getAccountName( getPlayerAccount( source ) ), aclGetGroup( v[1] ) ) then setElementData ( source,'MASRIY', v[2] ) end end end ) addEventHandler( 'onPlayerLogout', root,function( ) if ( getElementData ( source, 'MASRIY' ) ) then removeElementData ( source, 'MASRIY' ) end end )
-
نبي كود يوم يجي التاج فوق الرأس يعني كود dxDrawTextOnElement