Leaderboard
Popular Content
Showing content with the highest reputation on 24/09/16 in all areas
-
ي رجل لو تبحث بالقسم راح تلاقي طلبك وزود مدري وش ناقصك عشان تبحث بالمنتدى ؟ فيه اكثر من موضوع مطروح بنفس الفكرة2 points
-
2 points
-
We recently had coverage on RockPaperShotgun about San Andreas multiplayer mods. It covers both MTA and SA-MP, but is interesting nonetheless. It may be two Grand Theft Auto generations and 11 years old, but GTA: San Andreas is still very much alive. Its two most popular online multiplayer mods currently have a million or more active players between them — one, Multi Theft Auto, had 616,000 players in July (up from just 33k in February 2010), while the other, SA-MP, oscillates between about 15,000 and 50,000 concurrent players. I went to talk to members of both mod communities to find out what keeps them playing... You can read the full article here: https://www.rockpapershotgun.com/2016/09/15/why-a-million-people-still-play-multiplayer-grand-theft-auto-san-andreas-every-month/ A big thanks to Richard Moss for taking the time out to cover us. You can find more of his portfolio here. If you're a member of RockPaperShotgun's comments section, we encourage you guys to post comments on the article about your MTA experiences!1 point
-
السلام عليكم ورحمة الله وبركاته بتصميم وخاصيات جديدة IPB إلى phpBB اليوم تم تجديد المنتدى ونقله من ...نسعى لتقديم الأفضل دائماً !شاركونا بآرائكم حول التجديد ملاحظة: لم يتم اكتمال تجديد المنتدى كلياً حتى الآن فإذا تواجهكم بعض المشاكل, فسوف يتم حلها في أقرب وقت بإذن الله يا عيال نبي مشرفين جدد بعد1 point
-
Shalom, Wonder how I may add two types of spawn for a specific team. What I mean? Example: Add a ground spawner and air spawner to the Police Officer team, so in the first spawner will have a list of ground cars (LS Police, Police Ranger, Enforcer, etc), the second one will have a list of air vehicles (such as Police Maverick, Shamal, Seasparrow etc). At these scripts I'm able to add vehicles to a job spawner (team), but not 2 genre of vehicles in diferents spawners. Client local sx, sy = guiGetScreenSize ( ) local rsx, rsy = sx / 1280, sy / 1024 local window = guiCreateWindow( ( sx / 2 - ( rsx*354 ) / 2 ), ( sy / 2 - (rsy*400) / 2 ), (rsx*354), (rsy*400), "Spawners", false) local vehList = guiCreateGridList((rsx*9), (rsy*26), (rsx*335), (rsy*315), false, window) local btnSpawn = guiCreateButton((rsx*13), (rsy*346), (rsx*149), (rsy*43), "Spawn", false, window) local btnClose = guiCreateButton((rsx*195), (rsy*346), (rsx*149), (rsy*43), "Cancel", false, window) guiWindowSetSizable(window, false) guiSetVisible ( window, false ) guiGridListAddColumn(vehList, "Vehicle", 0.9) local marker = nil addEvent ( "NGSpawners:ShowClientSpawner", true ) addEventHandler ( "NGSpawners:ShowClientSpawner", root, function ( cars, mrker ) if ( wasEventCancelled ( ) ) then return end if ( not guiGetVisible ( window ) ) then bindKey ( "space", "down", spawnClickingFunctions ) showCursor ( true ) guiSetVisible ( window, true ) guiGridListClear ( vehList ) addEventHandler ( 'onClientMarkerLeave', mrker, closeWindow ) marker = mrker job = getElementData ( marker, "NGVehicles:JobRestriction" ) guiGridListSetItemText ( vehList, guiGridListAddRow ( vehList ), 1, "Free Vehicles", true, true ) for i, v in ipairs ( cars ) do local name = getVehicleNameFromModel ( v ) local row = guiGridListAddRow ( vehList ) guiGridListSetItemText ( vehList, row, 1, name, false, false ) guiGridListSetItemData ( vehList, row, 1, v ) end if ( exports.NGVIP:isPlayerVIP ( ) ) then local level = exports.NGVIP:getVipLevelFromName ( getElementData ( localPlayer, "VIP" ) ) if ( level and level > 0 and VipVehicles [ level ] and #VipVehicles [ level ] > 0 ) then guiGridListSetItemText ( vehList, guiGridListAddRow ( vehList ), 1, "VIP Vehicles", true, true ) for i, v in pairs ( VipVehicles [ level ] ) do local name = getVehicleNameFromModel ( v ) local row = guiGridListAddRow ( vehList ) guiGridListSetItemText ( vehList, row, 1, name, false, false ) guiGridListSetItemData ( vehList, row, 1, v ) end end end guiGridListSetSelectedItem ( vehList, 0, 1 ) addEventHandler ( "onClientGUIClick", btnSpawn, spawnClickingFunctions ) addEventHandler ( "onClientGUIClick", btnClose, spawnClickingFunctions ) end end ) function spawnClickingFunctions ( ) if ( source == btnClose ) then closeWindow ( localPlayer ) elseif ( source == btnSpawn ) or getKeyState( "space" ) == true then local row, col = guiGridListGetSelectedItem ( vehList ) if ( row == -1 ) then return exports['NGMessages']:sendClientMessage ( "Select a vehicle to be spawn.", 255, 255, 0 ) end local id = guiGridListGetItemData ( vehList, row, 1 ) triggerServerEvent ( "NGSpawners:spawnVehicle", localPlayer, id, marker, true ) closeWindow ( localPlayer ) end end function closeWindow ( p ) if ( not p or p == localPlayer ) then removeEventHandler ( 'onClientMarkerLeave', marker, closeWindow ) marker = nil guiSetVisible ( window, false ) showCursor ( false ) guiGridListClear ( vehList ) removeEventHandler ( "onClientGUIClick", btnSpawn, spawnClickingFunctions ) removeEventHandler ( "onClientGUIClick", btnClose, spawnClickingFunctions ) unbindKey ( "space", "down", spawnClickingFunctions ) end end addEvent ( "NGSpawners:CloseWindow", true ) addEventHandler ( "NGSpawners:CloseWindow", root, closeWindow ) Server local spawners = { ['Free'] = { }, ['Job'] = { } } local spawnedVehciles = { } function createFreeSpawner ( x, y, z, rz, sx, sy, sz ) local i = #spawners['Free']+1 local z = z - 1 local sx, sy, sz = sx or x, sy or y, sz or z+1.5 local rz = rz or 0 spawners['Free'][i] = createMarker ( x, y, z, 'cylinder', 2, 255, 255, 255, 120 ) setElementData ( spawners['Free'][i], "SpawnCoordinates", { sx, sy, sz, rz } ) setElementData ( spawners['Free'][i], "NGVehicles:SpawnVehicleList", JobVehicles['Free'] ) setElementData ( spawners['Free'][i], "NGVehicles:JobRestriction", false ) addEventHandler ( "onMarkerHit", spawners['Free'][i], onSpawnerHit ) return spawners['Free'][i] end function createJobSpawner ( job, x, y, z, colors, rz, sx, sy, sz ) local i = #spawners['Job']+1 local z = z - 1 local sx, sy, sz = sx or x, sy or y, sz or z+1.5 local rz = rz or 0 local r, g, b = unpack ( colors ) spawners['Job'][i] = createMarker ( x, y, z, 'cylinder', 2, r, g, b, 120 ) setElementData ( spawners['Job'][i], "SpawnCoordinates", { sx, sy, sz, rz } ) setElementData ( spawners['Job'][i], "NGVehicles:SpawnVehicleList", JobVehicles[job] ) setElementData ( spawners['Job'][i], "NGVehicles:JobRestriction", tostring ( job ) ) addEventHandler ( "onMarkerHit", spawners['Job'][i], onSpawnerHit ) return spawners['Job'][i] end function onSpawnerHit ( p ) local job = string.lower ( getElementData ( source, "NGVehicles:JobRestriction" ) or "false" ) if ( job == 'false' ) then job = false end local pJob = string.lower ( getElementData ( p, "Job" ) or "" ) if ( job ) then if ( pJob ~= job ) then exports['NGMessages']:sendClientMessage ( "This spawner is for the "..job.." job. You're not in the "..job.." job.", p, 255, 140, 40 ) return end end if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) ) then local list = getElementData ( source, "NGVehicles:SpawnVehicleList" ); triggerClientEvent ( p, 'NGSpawners:ShowClientSpawner', p, list, source ) triggerEvent ( "NGSpawners:onPlayerOpenSpawner", source, p ) end end addEvent ( "NGSpawners:spawnVehicle", true ) addEventHandler ( "NGSpawners:spawnVehicle", root, function ( id, x, y, z, rz, job ) local c = exports['NGAntiRestart']:createPlayerVehicle ( source, id, x, y, z, rz, true, job ) end ) for i, v in pairs ( data ) do if ( i == 'Free' ) then for k, e in ipairs ( v ) do createFreeSpawner ( unpack ( e ) ) end elseif ( i == 'Jobs' ) then for k, e in ipairs ( v ) do createJobSpawner ( unpack ( e ) ) end end end addEvent ( "NGSpawners:onPlayerOpenSpawner", true ) Data data = { -- Free: { x, y, z [, rz=0, sx=x, sy=y, sz=y ] } ['Free'] = { { 1538.88, -1686.07, 13.55, 90 } }, -- { job, x, y, z, { r, g, b } [, rz=0, sx=x, sy=y, sz=y ] } ['Jobs'] = { { "Criminal", 2138.91, -1727.17, 13.54, { 255, 50, 50 }, -90 }, { "Police Officer", 1555.09, -1610.62, 13.38, { 0, 100, 255 }, 180 }, { "Medic", 1179.02, -1339.01, 13.86, { 0, 255, 255 }, -90 }, } } JobVehicles = { ['Free'] = { 412, 468, 457 }, ['Criminal'] = { 609, 581, 521, 463, 522 }, ['Police Officer'] = { 596, 597, 598, 599 }, ['Medic'] = { 416 } } VipVehicles = { [0] = { }, -- None [4] = { 522, 560, 411, 546 } -- Level X }1 point
-
سلام عليكم ورحمة الله وبركاتة انا سويت لوحة فيها زر بدي لما تضغط زر يعضيك كيك يعني لما تضغط زر يعضي للي ضغط علي زر كيك وبس1 point
-
1 point
-
1 point
-
لا سبب الباند والكيك شوف وظيفة kickPlayer و banPlayer تلاحظ في ارقمنت للسبب والسبب هو برامتر reason في هذا الحدث1 point
-
الفكرة الي تحاول تسويها انت غلط , لأن مافيه كود يجيب سبب الميوت او الكيك , فقط الباند1 point
-
تسوي احداث من نفسك ؟ غريب اذا تبي تجيب سبب الميوت او الكيك عدل على لوحة الادمنية1 point
-
1 point
-
Editing posts is only available during the first 25 minutes after creating the post or if it's the first post in the topic (this rule holds true for both mobile and desktop version). Furthermore, this behavior is enabled on purpose to prevent abuse. What else makes you think that the mobile version is 'useless'?1 point
-
1 point
-
You'll have to use onClientClick to detect if a user has clicked within the text-field. If true, you'll want to prevent MTA from registering input if necessary, this can be done via toggleAllControls for example. Once the text-field has "focus", you can use the event onClientCharacter to allow them to type text into that text-field. Store the letters in a table and also use this table to display the text entered on-screen. If it's a masked text-field for passwords, you can use gsub on the string to replace all characters with * for example(not on the table itself, obviously). Then there are some other workarounds you need to do such as deleting characters via backspace/delete, moving the caret index left and right via arrow keys or whatnot. Depends on how much functionality you want to add.1 point
-
امين ان شاء الله ولاكن لاتجمع العرب بصفة وحده كل شخص يمثل نفسه مايمثل الاخرين وبالنسبة للقيم مود , موب اي واحد قال اسوي قيم مود يسويه وبالتوفيق ان شاء الله1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
صحيح نصفه رجع مثل ماكان وهذا بسبب غياب الرقابه واذا جيت تتكلم يقولون لك مانقدر نجبرهم اذا مشرفين القسم ماحد فيهم يهتم الا من رحم ربي تبي الاعضاء وخصوصاً الجدد يهتمون ؟؟1 point
-
dxGridlists Code used in the video: This framework allows you to make gridlists with dxs, The gridlists works like the default CEGUI system so you won't have a lot of work to adapt your code for this framework. Note that the core is writed in the OOP format (using metatables, not the MTA default system) so you have to write your scripts in this format too, The self for all functions should be the gridlist which you want to perform an action and not something else. You're free to fork, edit and use this as you want, but sell it or remove the author's name isn't permitted, Also pull requests to improve the code are welcome Fell free to contact me if you have any questions or something else. How to use To use this you have to download and include the main file within your project folder and add it to the meta.xml file, After this you can use all the functions that are listed in the documentation page. Download GitHub Documentation The documentation can be found at the project wiki, There also examples there. __ Sorry if there's some grammar errors, my english isn't that good1 point
-
hey what are render targets? how do i use them? how can they help me, or be useful in some way? how do they work? i don't get it..1 point