-
Posts
1,862 -
Joined
-
Days Won
8
Everything posted by Rockyz
-
اتوقع انه واضح Player not ped ! وجرب هالمثال وشوف اذا دمجت البيد يطلع كلام في الشات ولا لا addCommandHandler ( 'CreatePed', function ( plr, cmd ) myPed = createPed ( 0, unpack ( { getElementPosition ( plr ) } ) ) end ) addEventHandler ( 'onPlayerDamage', root, function ( ) if ( isElement ( myPed ) and source == myPed ) then outputChatBox 'Ped ?!!!!' end end )
-
- Client Side # : addEventHandler -- 'onClientGUIClick' guiGetText triggerServerEvent - Server Side # : addEvent getAccountPlayer setAccountData setPlayerName setPlayerNametagText << addEventHandler -- 'onPlayerJoin' getAccountData setPlayerName setPlayerNametagText
-
في السيرفر سايد مافي حدث اسمه 'onPedDamage' عندك خيارين يا انك تستخدم تايمر وتتحقق اذا الهلث حقه اقل من 100 وترجعه 100 او انك تستخدم هالحدث في الكلنت سايد 'onClientPedDamage' وتكنسله
-
ماتوقع انها بتجيب لاق لكن المهم الطريقتين صح
-
الصراحة انا الأسم مادري وش احطه لكن في النهاية الأسم مايهم تقدر تغيره + الطريقة هذي افضل من التايمر
-
بسم الله الرحمن الرحيم guiCreateAnimation gui-Elementالفنكشن يعمل تأثير لأي نوع من الــ يعني الألفا حقت الألمنت تزداد تدريجيا او تنقص تدريجيا _______________________________ الفنكشن معه افنت 'onClientGUIAnimationEnd' هذا الأفنت هو لما التأثير ينتهي _______________________________ Event : Event Source: guiElement - الألمنت المطبق عليه التأثير Paratmers: openState _______________________________ Function : Syntax: bool guiCreateAnimation ( element gui-element, bool openState[ , int effectSpeed = 1 ] ) _______________________________ Source Code: local guiTable = { }; addEvent ( 'onClientGUIAnimationEnd', true ) function animationRender ( guiElement, open, speed ) guiTable [ guiElement ] [ 'guiNow' ] = getTickCount ( ); local anim1, anim2 = interpolateBetween ( 0, 100, 0, 100, 0, 0, ( guiTable [ guiElement ] [ 'guiNow' ] - guiTable [ guiElement ] [ 'guiTick' ] ) / ( speed * 1000 ), 'Linear' ) if ( open ) then guiSetAlpha ( guiElement, anim1 / 100 ) else guiSetAlpha ( guiElement, anim2 / 100 ) end if ( guiTable [ guiElement ] [ 'guiNow' ] > guiTable [ guiElement ] [ 'guiTick' ] + ( speed * 1000 ) ) then removeEventHandler ( 'onClientRender', root, guiTable [ guiElement ] [ 'guiEvent' ] ) guiTable [ guiElement ] = nil triggerEvent ( 'onClientGUIAnimationEnd', guiElement, open ) if ( not open ) then guiSetVisible ( guiElement, false ) end end end function guiCreateAnimation ( guiElement, open, speed ) assert ( isElement ( guiElement ) and getElementType ( guiElement ):find ( 'gui-' ), 'guiCreateAnimation bad argument @ 1 gui-Element expected, got ' .. type ( guiElement ) ) assert ( type ( open ) == 'boolean', 'guiCreateAnimation bad argument @ 2 boolean expected, got ' .. type ( open ) ) local speed = speed or 1 assert ( type ( speed ) == 'number', 'guiCreateAnimation bad argument @ 3 number expected, got ' .. type ( speed ) ) if ( guiTable [ guiElement ] ) then return false end guiSetVisible ( guiElement, true ) guiTable [ guiElement ] = { }; guiTable [ guiElement ] [ 'guiTick' ], guiTable [ guiElement ] [ 'guiEvent' ] = getTickCount ( ), function ( ) animationRender ( guiElement, open, speed ) end addEventHandler ( 'onClientRender', root, guiTable [ guiElement ] [ 'guiEvent' ] ) return true end _______________________________ Arguments: 1 - gui-element - gui-element النافذة او الــ المراد تطبيق التأثير عليها 2 - openState - طريقة التأثير اذا كان true بينفتح تدريجيا و العكس 3 - effectSpeed - سرعة التأثير _______________________________ Example: local sPos = { guiGetScreenSize ( ) }; GUIEditor = { window = {} } addEventHandler("onClientResourceStart", resourceRoot, function() GUIEditor.window[1] = guiCreateWindow( ( sPos [ 1 ] - 520 ) / 2, ( sPos [ 2 ] - 452 ) / 2, 520, 452, "Flashing window", false) guiWindowSetSizable(GUIEditor.window[1], false) btn = guiCreateButton(50, 50, 50, 50, '', false, GUIEditor.window[1]) guiCreateAnimation ( GUIEditor.window[1], true, 0.5 ) guiSetFlashing ( GUIEditor.window[1], true ) outputChatBox 'Start !' setTimer ( function ( ) guiSetFlashing ( GUIEditor.window[1], false ) outputChatBox 'Finish !' end, 5000, 1 ) end ) local flasherEvent = { }; function guiSetFlashing ( wnd, state ) if ( state ) then flasherEvent [ wnd ] = function ( state ) if ( source == GUIEditor.window[1] ) then guiCreateAnimation ( GUIEditor.window[1], not state, 0.5 ) end end addEventHandler ( 'onClientGUIAnimationEnd', resourceRoot, flasherEvent [ wnd ] ) else if ( flasherEvent [ wnd ] ) then removeEventHandler ( 'onClientGUIAnimationEnd', resourceRoot, flasherEvent [ wnd ] ) end end end هذا المثال بيسوي فلاش للوحة وبعد 5 ثواني بيختفي الفلاش
-
ممكن الي شاهد مايعرف لل opg
-
https://forum.multitheftauto.com/topic/35801-tut-adding-custom-objects-in-mta/
-
بسم الله الرحمن الرحيم convertTimeToSeconds function convertTimeToSeconds(y,d,h,m,s) local y,d,h,m,s,newTime=y or 0,d or 0,h or 0,m or 0,s or 0,0 local newTime=newTime+(31556926*y)+(86400*d)+(3600*h)+((3600/60)*m)+(((3600/60)/60)*s) return math.floor(newTime) end Arguments : y: السنوات d: الأيام h: الساعات m: الدقائق s: الثواني الوضيفة تقوم بتحويل الوقت الى ثواني
-
if tonumber(r) >= 0 and tonumber(r) <= 255 and tonumber(g) >= 0 and tonumber(g) <= 255 and tonumber(b) >= 0 and tonumber(g) <= 255 then
-
guiWindowSetMovable
-
@Master_MTA حلو, لكن موجود من قبل
-
اي توقع ؟ '-' المهم سطر 13 استبدله بهذا : ._. local sX, sY = guiGetScreenSize ( ); wnd = guiCreateWindow(0,0,sX,sY,"Panel Car",false);
-
جرب الفنكشن الي عطيتك اياه لاتتوقع كل شي جاهز اضغط على الفنكشن وشوف المثال
-
guiGetScreenSize
-
مثال : function getTime( ) local time = getRealTime( ) local h, m = time.hour, time.minute return (h % 12 and h % 12 or 12)..":"..(m < 10 and "0"..m or m).." "..(h >= 12 and "PM" or "AM") end addCommandHandler ( 'whatTimeIsIt', function ( ) outputChatBox ( 'Its ( ' .. getTime ( ) .. ' )' ) end )
-
Everything here is correct show us the problem line
-
شي عادي حتى في اشخاص يروحون لقسم ال Scripting
-
@#_iMr.[E]coo وضيفتك تقدر تختصرها كذا : TimerTable = { { 's' , 1000 } , { 'm' , 1000 * 60 } , { 'h' , 1000 * 60 * 60 } , { 'd' , 1000 * 60 * 60 * 24 } }; function convertTime ( Type, Time ) assert ( type ( Type ) == 'string', '[convertTime] expected string at argument 1 @ got ' .. type ( Type ) ) assert ( type ( Time ) == 'number', '[convertTime] expected number at argument 2 @ got ' .. type ( Time ) ) for _, v in ipairs ( TimerTable ) do if ( Type == v [ 1 ] ) then return v [ 2 ] * Time; end end return false; end
-
Nice, Good Job kick = طرد
-
@Abdul KariM طيب وش رايك بهذي الطريقة : function table.toString ( theTable, char ) assert ( type ( theTable ) == 'table', 'expected table at argument 1 got ' .. type ( theTable ) ) assert ( type ( char ) == 'string', 'expected string at argument 2 got ' .. type ( char ) ) assert ( char:len ( ) <= 2, 'expected charcter at argument 2 got ' .. char ) local m, t = '', { }; for _, v in pairs ( theTable ) do table [ 'insert' ] ( t, v ) end for k, v in pairs ( t ) do if ( k == #t ) then m = m .. v else m = m .. v .. char end end return m; end في النهاية فرق كم سطر #Edit: بسم الله الرحمن الرحيم table.toStringWithIndex وضيفة نوعا ما مفيدة طبعا الوضيفة زي الي فوق لكن الفرق هو انه فيه بارتمر زيادة والي هو الأندكس Syntax table.toStringWithIndex ( table theTable, string separatingChar [, index = true ] ) Source Code : function table.toStringWithIndex ( theTable, char, index ) assert ( type ( theTable ) == 'table', 'expected table at argument 1 got ' .. type ( theTable ) ) assert ( type ( char ) == 'string', 'expected string at argument 2 got ' .. type ( char ) ) assert ( char:len ( ) <= 2, 'expected charcter at argument 2 got ' .. char ) local index = index or false assert ( type ( index ) == 'boolean', 'expected bool at argument 3 got ' .. type ( index ) ) local m, t = '', { }; for _, v in pairs ( theTable ) do table [ 'insert' ] ( t, { _, v } ) end for k, v in pairs ( t ) do if ( k == #t ) then if ( index ) then m = m .. v [ 1 ] .. ' = ' .. v [ 2 ] else m = m .. v [ 2 ] end else if ( index ) then m = m .. v [ 1 ] .. ' = ' .. v [ 2 ] .. char else m = m .. v [ 2 ] .. char end end end return m; end Example : print(table.toStringWithIndex({[1234]='a',[100]='b',[400]='c'},', ',true)) --[[ output : 100 = b, 1234 = a, 400 = c ]]
-
@Abdul KariM صحيح كلامك لكن ماتوقع انك تقدر تستخدمها ع التيبلات الي كذا : { [2] = 1 ,[21] =2 , [23] =3 ,[12] = 4 }