Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 24/09/16 in all areas

  1. ي رجل لو تبحث بالقسم راح تلاقي طلبك وزود مدري وش ناقصك عشان تبحث بالمنتدى ؟ فيه اكثر من موضوع مطروح بنفس الفكرة
    2 points
  2. قولنا قصتك انت يالناجح
    2 points
  3. 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
  4. السلام عليكم ورحمة الله وبركاته بتصميم وخاصيات جديدة IPB إلى phpBB اليوم تم تجديد المنتدى ونقله من ...نسعى لتقديم الأفضل دائماً !شاركونا بآرائكم حول التجديد ملاحظة: لم يتم اكتمال تجديد المنتدى كلياً حتى الآن فإذا تواجهكم بعض المشاكل, فسوف يتم حلها في أقرب وقت بإذن الله يا عيال نبي مشرفين جدد بعد
    1 point
  5. 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
  6. سلام عليكم ورحمة الله وبركاتة انا سويت لوحة فيها زر بدي لما تضغط زر يعضيك كيك يعني لما تضغط زر يعضي للي ضغط علي زر كيك وبس
    1 point
  7. صح كلامك مانتبهت للحدث
    1 point
  8. ثلاث مواضيع نفس الطلب محد مجبور يرد عليك ترا
    1 point
  9. لا سبب الباند والكيك شوف وظيفة kickPlayer و banPlayer تلاحظ في ارقمنت للسبب والسبب هو برامتر reason في هذا الحدث
    1 point
  10. الفكرة الي تحاول تسويها انت غلط , لأن مافيه كود يجيب سبب الميوت او الكيك , فقط الباند
    1 point
  11. تسوي احداث من نفسك ؟ غريب اذا تبي تجيب سبب الميوت او الكيك عدل على لوحة الادمنية
    1 point
  12. Find it yourself...
    1 point
  13. 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
  14. @TAPL https://vid.me/Wcbu @TAPL@UAEpro https://vid.me/uCkN
    1 point
  15. 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
  16. امين ان شاء الله ولاكن لاتجمع العرب بصفة وحده كل شخص يمثل نفسه مايمثل الاخرين وبالنسبة للقيم مود , موب اي واحد قال اسوي قيم مود يسويه وبالتوفيق ان شاء الله
    1 point
  17. Nice Comment, I'll like it
    1 point
  18. ^ صحيح يعطيك العافية ,, عكست الطريقة انا , النوم مشكلة
    1 point
  19. صحيح نصفه رجع مثل ماكان وهذا بسبب غياب الرقابه واذا جيت تتكلم يقولون لك مانقدر نجبرهم اذا مشرفين القسم ماحد فيهم يهتم الا من رحم ربي تبي الاعضاء وخصوصاً الجدد يهتمون ؟؟
    1 point
  20. 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 good
    1 point
  21. 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
×
×
  • Create New...