Jump to content

Booo

Members
  • Posts

    335
  • Joined

  • Last visited

Posts posted by Booo

  1. On 1/22/2017 at 14:36, Lally said:

    Hello community!
    I myself need a little help. I like when the car has 300 hp appear as an icon on the screen as the kicker motor. But I can not find the wiki community.
    Here is what I tried to do:

    function createSpeedo()
        
        for num, car in ipairs(cars) do
           local dividedCarHealth = getElementHealth(car) / 10
            local motor = math.floor(getElementHealth(car))
            if motor > 500 then
                dxDrawImage( screenWidth - 200, 32,32,37,"images/hud/damage.png")
                ax = ax - 34
            end
        end
    end

     

    function desBveh(veh)
        local attached = getAttachedElements ( veh )
        if ( attached ) then
            for k,element in ipairs(attached) do
                if getElementType ( element ) == "blip" then
                    destroyElement ( element )
                end
            end
        end
    end 
    
    setTimer(
    function()
    cars = getElementsByType("vehicle",root,true)
        for k, car in ipairs(cars) do
            local motor = math.floor(getElementHealth(car))
            if motor < 500 then
                    desBveh(car)
                 createBlipAttachedTo(car,20)
                else
                    desBveh(car)
            end
        end
    end, 300000, 0)

     

     

     

  2. ok thX MTA ,it worked !!

    32> Main.cpp

    32> Creating library x86\Release\Multi Theft Auto.lib and object x86\Release\Multi Theft Auto.exp

    32> Generating code

    32> Finished generating code

    32> _Launch 2008.vcxproj -> C:\Program Files\MTA San Andreas 1.6\Multi Theft Auto.exe

    ========== Build: 23 succeeded, 0 failed, 0 up-to-date, 9 skipped ==========

  3. Try compiling it once again. It could be an incorrect build order (due to dependencies not being set up correctly).

    i get new error

    Error 20 error LNK1181: cannot open input file 'libpng.lib'

    this output :

    Error occurred while restoring NuGet packages: System.ArgumentException: The path is not of a legal form.

    at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)

    at System.IO.Path.GetDirectoryName(String path)

    at NuGet.VisualStudio.VsUtility.GetNuGetSolutionFolder(Solution solution)

    at NuGet.VsEvents.PackageRestorer.UsingOldPackageRestore(Solution solution)

    at NuGet.VsEvents.PackageRestorer.BuildEvents_OnBuildBegin(vsBuildScope Scope, vsBuildAction Action).

    1>------ Rebuild All started: Project: Client - Core, Configuration: Release Win32 ------

    1> StdInc.cpp

    1> Compiling precompiled header.

    1>

    1>c:\builddll2\vendor\tinygettext\plural_forms.hpp(53): warning C4800: 'const tinygettext::PluralFunc' : forcing value to bool 'true' or 'false' (performance warning)

    1>c:\builddll2\vendor\tinygettext\language.hpp(58): warning C4800: 'tinygettext::LanguageSpec *const ' : forcing value to bool 'true' or 'false' (performance warning)

    1>StdInc.cpp(3): warning C4503: 'std::_If>,std::_Tree_iter_types,unsigned int,__w64 int,std::pair ,const std::pair ,std::pair ,const std::pair ,std::_Tree_node,void *> *>>' : decorated name length exceeded, name was truncated

    1> with

    1> [

    1> _Kty=std::string

    1> , _Ty=tinygettext::Dictionary::Entries

    1> ]

    1> CAdditionalVertexStreamManager.cpp

    1> CAjaxResourceHandler.cpp

    1> CChat.cpp

    1> CClientVariables.cpp

    1> CCommandFuncs.cpp

    1> CCommands.cpp

    1> CCommunity.cpp

    1> CCommunityLogin.cpp

    1> CCommunityRegistration.cpp

    1> CCompressorJobQueue.cpp

    1> CConnectManager.cpp

    1> CConsole.cpp

    1> CConsoleHistory.cpp

    1> CConsoleLogger.cpp

    1> CCore.cpp

    1> CCrashDumpWriter.cpp

    1> CCredits.cpp

    1> CDebugView.cpp

    1> CDirect3DData.cpp

    1> CDirect3DEvents9.cpp

    1> Compiling...

    1> CDirect3DHook9.cpp

    1> CDirect3DHookManager.cpp

    1> CDirectInputHook8.cpp

    1> CDirectInputHookManager.cpp

    1> CExceptionInformation_Impl.cpp

    1> CFavouritesAddByIP.cpp

    1> CFileFormatJpeg.cpp

    1> CFileFormatPng.cpp

    1> CFilePathTranslator.cpp

    1> CGraphics.cpp

    1> CGraphStats.cpp

    1> CGUI.cpp

    1> CJoystickManager.cpp

    1> CKeyBinds.cpp

    1> CLanguage.cpp

    1> CLine3DBatcher.cpp

    1> CLocalization.cpp

    1> CMainMenu.cpp

    1> CMainMenuScene.cpp

    1> CMaterialLine3DBatcher.cpp

    1> Compiling...

    1> CMemStats.cpp

    1> CMessageLoopHook.cpp

    1> CModelCacheManager.cpp

    1> CModManager.cpp

    1> CModuleLoader.cpp

    1> CMouseControl.cpp

    1> CNewsBrowser.cpp

    1> CNickGen.cpp

    1> Core.cpp

    1> CPEHookUtils.cpp

    1> CPixelsManager.cpp

    1> CPixelsManager_VolumeTexture.cpp

    1> CProxyDirect3D9.cpp

    1> CProxyDirect3DDevice9.cpp

    1> CProxyDirect3DIndexBuffer.cpp

    1> CProxyDirect3DTexture.cpp

    1> CProxyDirect3DVertexBuffer.cpp

    1> CProxyDirect3DVertexDeclaration.cpp

    1> CProxyDirectInput8.cpp

    1> CProxyDirectInputDevice8.cpp

    1> Compiling...

    1> CQuestionBox.cpp

    1> CQuickConnect.cpp

    1> CrashHandler.cpp

    1> CRenderItem.cpp

    1> CRenderItem.DxFont.cpp

    1> CRenderItem.EffectCloner.cpp

    1> CRenderItem.EffectTemplate.cpp

    1> CRenderItem.EffectWrap.cpp

    1> CRenderItem.FileTexture.cpp

    1> CRenderItem.GuiFont.cpp

    1> CRenderItem.RenderTarget.cpp

    1> CRenderItem.ScreenSource.cpp

    1> CRenderItem.Shader.cpp

    1> CRenderItem.ShaderInstance.cpp

    1> CRenderItem.WebBrowser.cpp

    1> CRenderItemManager.cpp

    1> CRenderItemManager.TextureReplace.cpp

    1> CScreenGrabber.cpp

    1> CScreenShot.cpp

    1> CServerBrowser.cpp

    1> Compiling...

    1> CServerBrowser.MasterServerManager.cpp

    1> CServerBrowser.RemoteMasterServer.cpp

    1> CServerCache.cpp

    1> CServerInfo.cpp

    1> CServerList.cpp

    1> CSetCursorPosHook.cpp

    1> CSettings.cpp

    1> CTileBatcher.cpp

    1> CVersionUpdater.cpp

    1> CVertexStreamBoundingBoxManager.cpp

    1> CVideoModeManager.cpp

    1> CWebCore.cpp

    1> CWebDevTools.cpp

    1> CWebsiteRequests.cpp

    1> CWebView.cpp

    1> CProxyDirect3D8.cpp

    1> dictionary.cpp

    1>c:\builddll2\vendor\tinygettext\plural_forms.hpp(53): warning C4800: 'const tinygettext::PluralFunc' : forcing value to bool 'true' or 'false' (performance warning)

    1>C:\Program Files\Microsoft Visual Studio 12.0\VC\include\vector(480): warning C4503: 'std::_Tree>::_Insert_hint' : decorated name length exceeded, name was truncated

    1> with

    1> [

    1> _Kty=std::string

    1> , _Ty=tinygettext::Dictionary::Entries

    1> , _Pr=std::less

    1> , _Alloc=std::allocator>

    1> ]

    1>C:\Program Files\Microsoft Visual Studio 12.0\VC\include\vector(480): warning C4503: 'std::_Tree>::_Insert_at' : decorated name length exceeded, name was truncated

    1> with

    1> [

    1> _Kty=std::string

    1> , _Ty=tinygettext::Dictionary::Entries

    1> , _Pr=std::less

    1> , _Alloc=std::allocator>

    1> ]

    1>C:\Program Files\Microsoft Visual Studio 12.0\VC\include\vector(480): warning C4503: 'std::_Tree>::_Insert_nohint' : decorated name length exceeded, name was truncated

    1> with

    1> [

    1> _Kty=std::string

    1> , _Ty=tinygettext::Dictionary::Entries

    1> , _Pr=std::less

    1> , _Alloc=std::allocator>

    1> ]

    1> dictionary_manager.cpp

    1>c:\builddll2\vendor\tinygettext\plural_forms.hpp(53): warning C4800: 'const tinygettext::PluralFunc' : forcing value to bool 'true' or 'false' (performance warning)

    1>c:\builddll2\vendor\tinygettext\language.hpp(58): warning C4800: 'tinygettext::LanguageSpec *const ' : forcing value to bool 'true' or 'false' (performance warning)

    1> language.cpp

    1>c:\builddll2\vendor\tinygettext\language.hpp(58): warning C4800: 'tinygettext::LanguageSpec *const ' : forcing value to bool 'true' or 'false' (performance warning)

    1> log.cpp

    1> plural_forms.cpp

    1>c:\builddll2\vendor\tinygettext\plural_forms.hpp(53): warning C4800: 'const tinygettext::PluralFunc' : forcing value to bool 'true' or 'false' (performance warning)

    1>..\..\vendor\tinygettext\plural_forms.cpp(49): warning C4099: 'tinygettext::PluralForms' : type name first seen using 'class' now seen using 'struct'

    1> c:\builddll2\vendor\tinygettext\plural_forms.hpp(28) : see declaration of 'tinygettext::PluralForms'

    1>..\..\vendor\tinygettext\plural_forms.cpp(76): warning C4099: 'tinygettext::PluralForms' : type name first seen using 'class' now seen using 'struct'

    1> c:\builddll2\vendor\tinygettext\plural_forms.hpp(28) : see declaration of 'tinygettext::PluralForms'

    1> po_parser.cpp

    1>c:\builddll2\vendor\tinygettext\language.hpp(58): warning C4800: 'tinygettext::LanguageSpec *const ' : forcing value to bool 'true' or 'false' (performance warning)

    1>c:\builddll2\vendor\tinygettext\plural_forms.hpp(53): warning C4800: 'const tinygettext::PluralFunc' : forcing value to bool 'true' or 'false' (performance warning)

    1>..\..\vendor\tinygettext\po_parser.cpp(357): warning C4309: 'static_cast' : truncation of constant value

    1>..\..\vendor\tinygettext\po_parser.cpp(358): warning C4309: 'static_cast' : truncation of constant value

    1>..\..\vendor\tinygettext\po_parser.cpp(359): warning C4309: 'static_cast' : truncation of constant value

    1> tinygettext.cpp

    1> unix_file_system.cpp

    1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets(1190,5): warning MSB8030: The linker switch "Minimum Required Version" requires "SubSystem" to be set. Without "SubSystem", the "Minimum Required Version" would not be passed to linker and could prevent to the output binary from running on older Operating Systems.

    1>LINK : fatal error LNK1181: cannot open input file 'libpng.lib'

    ========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

  4. بالتوفيق

    شآكر مرورك وردك ي طيب

    فكرة السيرفر حلوه

    بالنسبه لرفع المودات تقدر تخليه رفع مباشر ومحمي

    انك ماتقبل رفع سكربتات غير كلاينت سايد

    او اذا تبي تسوي لود لسيرفر سايد تخلي سكربت اللودر لكل روم يصنع المنت وكل لاعب يدخل تخلي البارينت حقه الالمنت حق الروم

    وتغير root + getRootElement

    الى الالمنت حق الروم في ملفات السيرفر سايد

    e.g.

    local thisRoom = createElement("room") 
    root = thisRoom 
      
    function f(msg) 
    cancelEvent() 
    outputChatBox(getPlayerName(source)..":"..msg, root) 
    end 
    addEventHandler("onPlayerChat", root, f) 
      
    -------------- 
      
    setElementParent(getRandomPlayer)--when player join the room 
    

    طبعا الفكره الثانيه ناقصه شوي

    بتواجهك مشكلة وحدة تقريبا باللوب حلها ماهو صعب مره

    اعتذر اذا كان فيه اخطاء لاني داخل من الجوال

    ي هلآ بالوحش Qr%20(210).gif

    افكار وطرح جميل كالعآده ، شف يالغالي

    الرفع التلقائي للسكربتات ماهو مستحيل، ممكن يصير بس بشرط انك تعرف الاشخاص الي يرفعون السكربتات معرفه شخصيه

    ، بس المشكله تدري وين ؟؟

    المشكله انه لو يصير رفع السكربتات تلقائي ويكون للجميع راح يصير دمار بالسيرفر من ناحية لاق والتهكير

    يعني لو يجيك واحد ويرفع سكربت زي كذا

      
    while true do 
         createVehicle ( 432, 0,0,0) 
        end 
    

    خلاص ودع السيرفر

    سوى كنت حاطه setElementParent

    او ماحطيته ..

    لان لاعب في الاخير بيكون متصل على الروت الرئيسي

    الي هو

    getRootElement() 
    

    و

    createElement 
    

    تكون فروع للروت الرئيسي !

    اما بالنسبه انه فقط يرفع ملفات كلنت ؟؟

    مافيه فايده ، لان السكربت بدون ملفات سيرفر ماله قيمه

    لكن الحين رفع السكربتات ماهو مشكله في الكنق مود

    ، تقدر ترفع 10 سكربتات في نص ساعه

    شآكر لك مرورك وردك يالغآلي Qr%20(210).gif

    السلام عليكم

    بالتوفيق عزيزي Booo :D !

    اآرحب الكنق فهد

    وعليكم السلام منؤر يالامير

    Qr%20(210).gif

    خرافي ما شاء الله عليك

    بالتوفيق

    تسلم يدآك على آلرد آلجميل وآلمشجع ,ربي يؤفقك ,

    Qr%20(210).gif

    فكره رائع وجميلة :wink:

    بالنسبة لرفع المودات لازم يكون في مشرفين يقدرو يشوفو الأكواد

    ويلقو نظره عليهم قبل الرفع لضمان امان السيرفر

    بالتوفيق :fadein:

    حيآك آلله يآصديقي ,

    رفع السكربتات الحين يكون من المنتدى ،

    مايمنع يكون فيه مشرفين ، ونتشرف تكون من ضمنهم

    منؤر يالغاآآلي

    Qr%20(210).gif

    ابداع × ابداع

    وصل ابداعاتك يا بطل

    آنت آصل آلآبدآع ي غآلي ,

    شآكر مرورك وردك آلعطر ,

    Qr%20(210).gif

    فكرة نظامه تشبه S4league

    كويس انك عملت كدا حاجة جميله جدا يا بوو like

    منؤر يالغالي ، صحيح كلإلإمك

    فكرة المود على نظام MMo

    وعليكم السلام , شغل عجيب ورائع واصل ابداعك

    :)

    تسلملي ي الإلإمير ، منؤر يالغالي

    وإنت إصل الابدآآع

    ما شاء الله

    شغل مرتب اهنيك

    حيآك آلله يآصديقي ,

    وان شاء الله تشرفنا بوجودك

    منور يالغاآآلي

    Qr%20(210).gif

    سلام ععليكم

    والله ابداع ب بو

    نورت المنتدى برجعتك

    بالتوفيق لك بمشروعك

    وان شاء الله نشوف سيرفرك من اشهر السيرفرات ي قلبو

    بالتوفيق لك ي بطل

    وعليكم السلام ورحمة الله وبركاته

    النور نورك ، ولإيهونون الاعضاء الباقين

    تسلملي يابعد قلبي ، نورت آلموضوع وشآكر مرورك وردك آلجميل وآلمشجع ,

    Qr%20(210).gif

  5. عمل إبداعي جميل حار رطب على أجواء المنتدى

    Good luck :mrgreen:

    هلا بك تنطيل ، منؤر ياكنق

    اي انك تقدر تشغل سكربتات وتطفييها وتقدر ترفع سكربتات ل رومك

    " وتقدر ترفع سكربتات ل رومك "

    تخيل يجي واحد يرفع سكربت ملغم

    تصبح على خير :lol:

    ، ويحتاج لك فقط تنسق اللوحات بـ دي إكس ويطلع خورافي

    * الي يقول تجيب لاق ومدري وش ^

    GUI لو تسوي اول مايخش يختار اللغة وبعدين يختار نظام اللوحات ، دي اكس او

    موفق ..

    منور ياكنق ، كلإلإمك صحيح

    القيم مود مازال في البدايه ويحتاج تطوير في اللوحات والتصميم والمود بشكل عام

    وعلشان كذا راح يكون هناك موضوع يختص بالنقطه هذي

    فتح موضوع للي حاب يطور بالقيم مود وبالمقابل راح يتم اضافة حقوقه للقيم

    اما بالنسبه للتلغيم هذا امر مستبعد ، بحكم ان السكربتات قبل لاترتفع لازم اخذ عليها نظره

    بعدين نرفعها للقيم مود

    Good Luck <3

    منور ي آمير

  6. السلام عليكم ورحمة الله وبركاته

    تحيه طيبه للجميع :

    do.php?img=40249

    نعود ب الاصدار والتحديث الجديد ل الكنق مود مع مميزات مجنونه وتحكم كامل بالغرفه

    نبذه عن القيم مود

    الكنق مود هو مولتي قيم ، يحوي رومات متعدده كل غرفه تحوي قيم مود مختلف وسكربتات خاصه بالغرفه ولها ادمنيه خاصين بالروم الي هم انشآو الروم

    الجميل بالكنق مود هو انك تقدر تسوي روم خاص فيك تكون ادمن عليه وتقدر تضيف ادمنيه معك من الوحة

    ومن المميزات الي يقدمها لك القيم مود

    هو انه يعطيك التحكم الكامل بالروم

    اقصد بالتحكم الكامل : انه تكون عندك لوحة ادمن الي تحوي الكثير من الاوامر الخاصه برومكك !

    اي انك تقدر تشغل سكربتات وتطفييها وتقدر ترفع سكربتات ل رومك

    تقدر تضيف مابات ، تقدر تتحكم ب الاعدادت ، تقدر تسوي لوحات خاصه برومك

    تقدر تضيف شعار كلان ل رومك وتقدر تتحكم بالاعبين برومك من كيك وباند ومن اوامر اعطاء السيارات والاسلحه والشخصيات

    وتقدر ايضا تغير مكان الريسبون وعلى حسب السكربتات الي تشغلها برومك

    تقدر تضيف سيارات ل رومك وهناك الكثير والكثير من المميزات

    كنق مود يحوي الان اربعة مودات : *وفيه تحديثات ل اضافة اكثر

    1- play < تقدر تسوي فري روم او حياة واقعيه

    2- مصارعه <

    3- x-Fire < قيم مود شبيه بتكتيك نظام فريقين وحرب

    4- BattleField < حرب

    add To Favorite : (

    560x95_04D40F_D4C604_027808_676B14.png

  7. function setLevel(playerS,cmd,name,amount) 
        local player = getPlayerFromName(PlayerS) 
        local account = getPlayerAccount(playerS) 
        local accName = getAccountName(account) 
            if isObjectInACLGroup("user."..accName,aclGetGroup("Admin")) then 
            if getElementType(player) == "player" and tonumber(amount) then 
                setElementData(player,"Level",getElementData(player,"Level") + amount) 
                outputChatBox("Your level was increased by "..getPlayerName(playerS).." ("..amount.."%)",player,0,255,0) 
                outputChatBox(getPlayerName(player).."'s level was increased.",playerS,0,255,0) 
            else 
                outputChatBox("Failed to give because the player/amount was wrong.",playerS,255,255,0) 
            end 
        end 
    end 
    addCommandHandler("setLevel",setLevel,false,false) 
    

    any ideas why it wont work?

    DebugScript3 says" WARNING" DG_Levels/server.lua"70" Bad argument @ 'getPlayerFromName' [Expected string at argument 1, got nil]

    Because of the small and capital letters

    function setLevel(playerS,cmd,name,amount)

        local player = getPlayerFromName(PlayerS)

  8. Hello I have a gun shop

    and I wonder if it is possible that when the player dies

    do not miss the weapon buy

    until you run out of ammunition

    function Pistol() 
     if ( getPlayerMoney(source) >= 500 ) then 
            takePlayerMoney(source,500) 
        giveWeapon(source,22, 100,true) 
    outputChatBox ( "Gracias por tu compra : Pistol ", source, 255, 255, 255, true) 
           else 
           outputChatBox("Error 5674: Dinero Insuficiente", source, 250,230,0) 
            end 
    end 
    addEvent("Pistol", true) 
    addEventHandler("Pistol", root, Pistol) 
      
    function Deagle() 
     if ( getPlayerMoney(source) >= 800 ) then 
            takePlayerMoney(source,800) 
        giveWeapon(source,24, 50,true) 
    outputChatBox ( "Gracias por tu compra : Deagle ", source, 255, 255, 255, true) 
           else 
           outputChatBox("Error 5674: Dinero Insuficiente", source, 250,230,0) 
            end 
    end 
    addEvent("Deagle", true) 
    addEventHandler("Deagle", root, Deagle) 
    

    try this bro

    if work tell me !

      
    function Pistol() 
     if ( getPlayerMoney(source) >= 500 ) then 
            takePlayerMoney(source,500) 
        giveWeapon(source,22, 100,true) 
    outputChatBox ( "Gracias por tu compra : Pistol ", source, 255, 255, 255, true) 
    if getElementData(source,"BooWeap") then 
     table.insert(getElementData(source,"BooWeap"),22,100) 
        else 
    setElementData(source,"BoooWeap",{["22"]=100}) 
    end 
           else 
           outputChatBox("Error 5674: Dinero Insuficiente", source, 250,230,0) 
            end 
    end 
    addEvent("Pistol", true) 
    addEventHandler("Pistol", root, Pistol) 
      
    function Deagle() 
     if ( getPlayerMoney(source) >= 800 ) then 
            takePlayerMoney(source,800) 
        giveWeapon(source,24, 50,true) 
    outputChatBox ( "Gracias por tu compra : Deagle ", source, 255, 255, 255, true) 
    if getElementData(source,"BooWeap") then 
     table.insert(getElementData(source,"BooWeap"),24,50) 
        else 
    setElementData(source,"BoooWeap",{["24"]=50}) 
    end 
      
           else 
           outputChatBox("Error 5674: Dinero Insuficiente", source, 250,230,0) 
            end 
    end 
    addEvent("Deagle", true) 
    addEventHandler("Deagle", root, Deagle) 
      
    addEventHandler( "onPlayerWasted", getRootElement( ), 
        function() 
    setElementData(source,"BooWeap",{}) 
    for i=1,12,1 do 
    if getPedWeapon (source,i) then 
     table.insert(getElementData(source,"BooWeap"),getPedWeapon (source,i),getPedTotalAmmo (source,i)) 
    end 
    end 
        end 
    ) 
      
      
    addEventHandler( "onPlayerSpawn", getRootElement( ), 
        function() 
       if getElementData(source,"BooWeap") then 
             for k,v in pairs(getElementData(source,"BooWeap")) do 
                   giveWeapon(source, tonumber(k), tonumber(v), true) 
              end 
       end 
      end 
    ) 
      
      
      
      
      
    
  9. سلام انا عندي مود يكتب واللي يكتب يطلع فوق الاعب الكلام اللي كتبه بالشات

    ابيكم تعدلون على الكودين انا ماادري ايهم اللي يعدل عليهه

    ملاحضه:ابي الكلام اللي يطلع فوق الاعب يختفي بعد 20 ثانيه

    الكود الاول

    server

    local showtime = tonumber(get("chatbubbles.DefaultTime")) 
    local characteraddition = tonumber(get("chatbubbles.PerCharacterAddition")) 
    local maxbubbles = get("chatbubbles.MaxBubbles") 
    if maxbubbles == "false" then maxbubbles = false else maxbubbles = tonumber(maxbubbles) end 
    local hideown = get("chatbubbles.HideOwn") 
    if hideown == "true" then hideown = true else hideown = false end 
      
    function sendMessageToClient(message,messagetype) 
        if not wasEventCancelled() then 
            if messagetype == 0 or messagetype == 2 then 
                triggerClientEvent("onChatbubblesMessageIncome",source,message,messagetype) 
            end 
        end 
    end 
      
    function returnSettings() 
        local settings = 
        { 
        showtime, 
        characteraddition, 
        maxbubbles, 
        hideown 
        } 
        triggerClientEvent(source,"onBubbleSettingsReturn",getRootElement(),settings) 
    end 
      
    addEventHandler("onPlayerChat",getRootElement(),sendMessageToClient) 
    addEvent("onAskForBubbleSettings",true) 
    addEventHandler("onAskForBubbleSettings",getRootElement(),returnSettings) 
    

    الكود الثاني

    client

    local textsToDraw = {} 
      
    local hideown 
    local showtime 
    local characteraddition 
    local maxbubbles 
      
    local showthebubbles = true 
      
    function income(message,messagetype) 
        if source ~= getLocalPlayer() or not hideown then 
            if messagetype == 2 then 
                if getPlayerTeam(source) == getPlayerTeam(getLocalPlayer()) then 
                    addText(source,message,messagetype) 
                end 
            else 
                addText(source,message,messagetype) 
            end 
        end 
    end 
      
    function addText(source,message,messagetype) 
        local notfirst = false 
        for i,v in ipairs(textsToDraw) do 
            if v[1] == source then 
                v[4] = v[4] + 1 
                notfirst = true 
            end 
        end 
        local infotable = {source,message,messagetype,0} 
        table.insert(textsToDraw,infotable) 
        if not notfirst then 
            setTimer(removeText,showtime + (#message * characteraddition),1,infotable) 
        end 
    end 
      
    function removeText(infotable) 
        for i,v in ipairs(textsToDraw) do 
            if v[1] == infotable[1] and v[2] == infotable[2] then 
                for i2,v2 in ipairs(textsToDraw) do 
                    if v2[1] == v[1] and v[4] - v2[4] == 1 then 
                        setTimer(removeText,showtime + (#v2[2] * characteraddition),1,v2) 
                    end 
                end 
                table.remove(textsToDraw,i) 
                break 
            end 
        end 
    end 
      
    function getTextsToRemove() 
        for i,v in ipairs(textsToDraw) do 
            if v[1] == source then 
                removeText(v) 
            end 
        end 
    end 
      
    function handleDisplay() 
        if showthebubbles then 
            for i,v in ipairs(textsToDraw) do 
                if isElement(v[1]) then 
                    if getElementHealth(v[1]) > 0 then 
                        local camPosXl, camPosYl, camPosZl = getPedBonePosition (v[1], 6) 
                        local camPosXr, camPosYr, camPosZr = getPedBonePosition (v[1], 7) 
                        local x,y,z = (camPosXl + camPosXr) / 2, (camPosYl + camPosYr) / 2, (camPosZl + camPosZr) / 2 
                        --local posx,posy = getScreenFromWorldPosition(x,y,z+0.25) 
                        local cx,cy,cz = getCameraMatrix() 
                        local px,py,pz = getElementPosition(v[1]) 
                        local distance = getDistanceBetweenPoints3D(cx,cy,cz,px,py,pz) 
                        local posx,posy = getScreenFromWorldPosition(x,y,z+0.020*distance+0.10) 
                        local elementtoignore1 = getPedOccupiedVehicle(getLocalPlayer()) or getLocalPlayer() 
                        local elementtoignore2 = getPedOccupiedVehicle(v[1]) or v[1] 
                        if posx and distance <= 45 and ( isLineOfSightClear(cx,cy,cz,px,py,pz,true,true,false,true,false,true,true,elementtoignore1) or isLineOfSightClear(cx,cy,cz,px,py,pz,true,true,false,true,false,true,true,elementtoignore2) ) and ( not maxbubbles or  v[4] < maxbubbles ) then -- change this when multiple ignored elements can be specified 
                            local width = dxGetTextWidth(v[2],1,"default") 
                             
                            dxDrawRectangle(posx - (3 + (0.5 * width)),posy - (2 + (v[4] * 20)),width + 5,19,tocolor(0,0,0,255)) 
                            dxDrawRectangle(posx - (6 + (0.5 * width)),posy - (2 + (v[4] * 20)),width + 11,19,tocolor(0,0,0,40)) 
                            dxDrawRectangle(posx - (8 + (0.5 * width)),posy - (1 + (v[4] * 20)),width + 15,17,tocolor(0,0,0,255)) 
                            dxDrawRectangle(posx - (10 + (0.5 * width)),posy - (1 + (v[4] * 20)),width + 19,17,tocolor(0,0,0,40)) 
                            dxDrawRectangle(posx - (10 + (0.5 * width)),posy - (v[4] * 20) + 1,width + 19,13,tocolor(0,0,0,255)) 
                            dxDrawRectangle(posx - (12 + (0.5 * width)),posy - (v[4] * 20) + 1,width + 23,13,tocolor(0,0,0,40)) 
                            dxDrawRectangle(posx - (12 + (0.5 * width)),posy - (v[4] * 20) + 4,width + 23,7,tocolor(0,0,0,255)) 
                             
                            local r,g,b = 255,255,255 
                            if v[3] == 2 then 
                                r,g,b = getTeamColor(getPlayerTeam(v[1])) 
                            end 
                             
                            dxDrawText(v[2],posx - (0.5 * width),posy - (v[4] * 20),posx - (0.5 * width),posy - (v[4] * 20),tocolor(r,g,b,255),1,"default","left","top",false,false,false) 
                        end 
                    end 
                end 
            end 
        end 
    end 
      
    function getServerSettings() 
        triggerServerEvent("onAskForBubbleSettings",getLocalPlayer()) 
    end 
      
    function saveSettings(settings) 
        showtime = settings[1] 
        characteraddition = settings[2] 
        maxbubbles = settings[3] 
        hideown = settings[4] 
        addEvent("onChatbubblesMessageIncome",true) 
        addEventHandler("onChatbubblesMessageIncome",getRootElement(),income) 
    end 
      
    function toggleBubblesOnOff() 
        showthebubbles = not showthebubbles 
        outputChatBox("Toggled chatbubbles " ..( not showthebubbles and "#FF0000off#FFFFFF." or "#00FF00on#FFFFFF." ),255,255,255,true) 
    end 
      
    addEventHandler("onClientPlayerQuit",getRootElement(),getTextsToRemove) 
    addEventHandler("onClientRender",getRootElement(),handleDisplay) 
    addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()),getServerSettings) 
    addEvent("onBubbleSettingsReturn",true) 
    addEventHandler("onBubbleSettingsReturn",getRootElement(),saveSettings) 
    addCommandHandler("chatbubbles",toggleBubblesOnOff) 
    

    تكفوووون عدلوهن بأسرع وقت

    السلام عليكم

    جرب كذا

    server

    local showtime = 20000  
    local characteraddition = 50 
    local maxbubbles = 1 
    local hideown = true 
      
    function sendMessageToClient(message,messagetype) 
        if not wasEventCancelled() then 
            if messagetype == 0 or messagetype == 2 then 
                triggerClientEvent("onChatbubblesMessageIncome",source,message,messagetype) 
            end 
        end 
    end 
      
    function returnSettings() 
        local settings = 
        { 
        showtime, 
        characteraddition, 
        maxbubbles, 
        hideown 
        } 
        triggerClientEvent(source,"onBubbleSettingsReturn",getRootElement(),settings) 
    end 
      
    addEventHandler("onPlayerChat",getRootElement(),sendMessageToClient) 
    addEvent("onAskForBubbleSettings",true) 
    addEventHandler("onAskForBubbleSettings",getRootElement(),returnSettings) 
    

    الكود الثاني

    client

    local textsToDraw = {} 
      
    local hideown 
    local showtime 
    local characteraddition 
    local maxbubbles 
      
    local showthebubbles = true 
      
    function income(message,messagetype) 
        if source ~= getLocalPlayer() or not hideown then 
            if messagetype == 2 then 
                if getPlayerTeam(source) == getPlayerTeam(getLocalPlayer()) then 
                    addText(source,message,messagetype) 
                end 
            else 
                addText(source,message,messagetype) 
            end 
        end 
    end 
      
    function addText(source,message,messagetype) 
        local notfirst = false 
        for i,v in ipairs(textsToDraw) do 
            if v[1] == source then 
                v[4] = v[4] + 1 
                notfirst = true 
            end 
        end 
        local infotable = {source,message,messagetype,0} 
        table.insert(textsToDraw,infotable) 
        if not notfirst then 
            setTimer(removeText,showtime + (#message * characteraddition),1,infotable) 
        end 
    end 
      
    function removeText(infotable) 
        for i,v in ipairs(textsToDraw) do 
            if v[1] == infotable[1] and v[2] == infotable[2] then 
                for i2,v2 in ipairs(textsToDraw) do 
                    if v2[1] == v[1] and v[4] - v2[4] == 1 then 
                        setTimer(removeText,showtime + (#v2[2] * characteraddition),1,v2) 
                    end 
                end 
                table.remove(textsToDraw,i) 
                break 
            end 
        end 
    end 
      
    function getTextsToRemove() 
        for i,v in ipairs(textsToDraw) do 
            if v[1] == source then 
                removeText(v) 
            end 
        end 
    end 
      
    function handleDisplay() 
        if showthebubbles then 
            for i,v in ipairs(textsToDraw) do 
                if isElement(v[1]) then 
                    if getElementHealth(v[1]) > 0 then 
                        local camPosXl, camPosYl, camPosZl = getPedBonePosition (v[1], 6) 
                        local camPosXr, camPosYr, camPosZr = getPedBonePosition (v[1], 7) 
                        local x,y,z = (camPosXl + camPosXr) / 2, (camPosYl + camPosYr) / 2, (camPosZl + camPosZr) / 2 
                        --local posx,posy = getScreenFromWorldPosition(x,y,z+0.25) 
                        local cx,cy,cz = getCameraMatrix() 
                        local px,py,pz = getElementPosition(v[1]) 
                        local distance = getDistanceBetweenPoints3D(cx,cy,cz,px,py,pz) 
                        local posx,posy = getScreenFromWorldPosition(x,y,z+0.020*distance+0.10) 
                        local elementtoignore1 = getPedOccupiedVehicle(getLocalPlayer()) or getLocalPlayer() 
                        local elementtoignore2 = getPedOccupiedVehicle(v[1]) or v[1] 
                        if posx and distance <= 45 and ( isLineOfSightClear(cx,cy,cz,px,py,pz,true,true,false,true,false,true,true,elementtoignore1) or isLineOfSightClear(cx,cy,cz,px,py,pz,true,true,false,true,false,true,true,elementtoignore2) ) and ( not maxbubbles or  v[4] < maxbubbles ) then -- change this when multiple ignored elements can be specified 
                            local width = dxGetTextWidth(v[2],1,"default") 
                             
                            dxDrawRectangle(posx - (3 + (0.5 * width)),posy - (2 + (v[4] * 20)),width + 5,19,tocolor(0,0,0,255)) 
                            dxDrawRectangle(posx - (6 + (0.5 * width)),posy - (2 + (v[4] * 20)),width + 11,19,tocolor(0,0,0,40)) 
                            dxDrawRectangle(posx - (8 + (0.5 * width)),posy - (1 + (v[4] * 20)),width + 15,17,tocolor(0,0,0,255)) 
                            dxDrawRectangle(posx - (10 + (0.5 * width)),posy - (1 + (v[4] * 20)),width + 19,17,tocolor(0,0,0,40)) 
                            dxDrawRectangle(posx - (10 + (0.5 * width)),posy - (v[4] * 20) + 1,width + 19,13,tocolor(0,0,0,255)) 
                            dxDrawRectangle(posx - (12 + (0.5 * width)),posy - (v[4] * 20) + 1,width + 23,13,tocolor(0,0,0,40)) 
                            dxDrawRectangle(posx - (12 + (0.5 * width)),posy - (v[4] * 20) + 4,width + 23,7,tocolor(0,0,0,255)) 
                             
                            local r,g,b = 255,255,255 
                            if v[3] == 2 then 
                                r,g,b = getTeamColor(getPlayerTeam(v[1])) 
                            end 
                             
                            dxDrawText(v[2],posx - (0.5 * width),posy - (v[4] * 20),posx - (0.5 * width),posy - (v[4] * 20),tocolor(r,g,b,255),1,"default","left","top",false,false,false) 
                        end 
                    end 
                end 
            end 
        end 
    end 
      
    function getServerSettings() 
        triggerServerEvent("onAskForBubbleSettings",getLocalPlayer()) 
    end 
      
    function saveSettings(settings) 
        showtime = settings[1] 
        characteraddition = settings[2] 
        maxbubbles = settings[3] 
        hideown = settings[4] 
        addEvent("onChatbubblesMessageIncome",true) 
        addEventHandler("onChatbubblesMessageIncome",getRootElement(),income) 
    end 
      
    function toggleBubblesOnOff() 
        showthebubbles = not showthebubbles 
        outputChatBox("Toggled chatbubbles " ..( not showthebubbles and "#FF0000off#FFFFFF." or "#00FF00on#FFFFFF." ),255,255,255,true) 
    end 
      
    addEventHandler("onClientPlayerQuit",getRootElement(),getTextsToRemove) 
    addEventHandler("onClientRender",getRootElement(),handleDisplay) 
    addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()),getServerSettings) 
    addEvent("onBubbleSettingsReturn",true) 
    addEventHandler("onBubbleSettingsReturn",getRootElement(),saveSettings) 
    addCommandHandler("chatbubbles",toggleBubblesOnOff) 
    

    meta

      
        "eXo|dragon" description="Adds chatbubbles above the player's heads!" type="script" version="1.0.6" /> 
      
        
  10. Ok, i got

    help with other thing

    thats my code:

      
    local options= guiCreateGridList(0.01, 0.10, 1, 0.70, true, Window) 
    local col1 = guiGridListAddColumn(options, "Los Santos" , 0.85) 
    if (col1) then 
        local row = guiGridListAddRow ( options) 
        guiGridListSetItemText ( options, row, col1, "City 1", false, false ) 
    end 
    end 
      
    

    How I capture the value from row?

    thanks

      
      
      
    local options= guiCreateGridList(0.01, 0.10, 1, 0.70, true, Window) 
    local col1 = guiGridListAddColumn(options, "Los Santos" , 0.85) 
    if (col1) then 
        local row = guiGridListAddRow ( options) 
        guiGridListSetItemText ( options, row, col1, "City 1", false, false ) 
    end 
      
        addEventHandler ( "onClientGUIClick", options, 
    function() 
            if not ( guiGridListGetSelectedItem (options) == -1 ) then 
                   local value = guiGridListGetItemText (options, guiGridListGetSelectedItem(options), 1 ) 
          end 
    end) 
    

  11. it works but now the part with :

    -[[elseif getElementData(v, "personalVehicle") then

    exports.Mylifehousing:vehicleRecache(v)]]--

    doesn't work

    used the code

    and all vehicles respwan all 30 sec

      
    addEventHandler("onResourceStart", resourceRoot, function() 
        for i,veh in ipairs(getElementsByType("vehicle")) do 
            toggleVehicleRespawn (veh true )  
            setVehicleIdleRespawnDelay (veh, 30000 ) 
       end 
    end)    
    

  12. بسم الله رحمان رحيم

    لقد قمت بتأسيس سرفر جديد RPG و أنا أريد أن يشارك عديد الأعضاء للسرفر

    شكرا

    link : http://uscmta.bl.ee

    السلام عليكم

    شكرا لك على الدعوه :mrgreen:

    ولكن لدي ملاحظه بالنسبه لكتابتك

    بسم الله رحمان رحيم

    لديك خطا وهو وضع حرف الالف

    وكما تعلم ياصديقي ان

    " بسم الله الرحمن الرحيم "

    ايه من ايات القرآن

    فيجب ان تحرص على كتابتها بالشكل الصحيح

    والخطا الذي وقعت فيه انك وضعت حرف الالف بعد حرف الميم

    والحرف بالكتابه لايكتب ، فقط ينطق عند القراءه

  13. السلام عليكم

    استخدم وظيفة

      
    loadstring() 
    

    اخ داوي ;

    اللي اقصده انه إذا كتبت داخل editBox وسويت guiGetText راح يكون كذا

    "(" outputChatBox("Test" < وهذي مو لغة برمجية , يعني لو سوي كذا , راح يكون كلام فقط وانا ابي هذا الكلام يتحول لـ

    ("outputChatBox("Test بدون الـ " "

    ارجوا أنه وضح مقصدي -_- !

    تقدر تسويها بالجداول لكن تحتاج لسته للدوال

    +

    تستخدم

    مكتبة string

    مثال

    الكود ليس كامل ، تقدر تعدل عليه

    هو فقط للتوضيح

    List = { 
    "outputChatBox", 
    } 
      
    scr = { 
    } 
    local text = guiGetText(editBox) 
    for k,v in pairs(List) do 
    if string.find(text,v) then 
     fun = v  
    vars = gettok(text, 2, string.byte('(')) 
    ver = vars:gsub(")", "") 
    scr[fun] = ver 
    end 
      
      
    function StartScript() 
    for k ,v in pairs(scr) do 
    k(v) 
    end 
    end 
    

  14. Why should I trust your compiled script when I can do this without potentially compromising my security via http://convertffs.com/

    and why should i trust with your site ?

    and my script not use any HTTP functions

    Except your script uses callServerFunction, which has a massive security problem (loadstring!? why!?) and you also store every converted script serverside as the player's serial.

    Are you kidding me?

    the script work on local server ?? how i steal the map ??

    and yes! i'm use the Useful Function https://wiki.multitheftauto.com/wiki/CallServerFunction << used loadstring

    then tell me how did you know I used this Useful Function !!

    So u Decrypted My script ~?

  15. فكرة اتمنى التطبيق

    بلوحة الادمن كل واحد يتحكم بروم مثلا بيركب مود

    يرفع مود ع رابط مباشر وتحط انت بتاب RESOURCE

    زر اضافة مودات ويحط الرابط ثم يضغط اوك ويستنى ينرفع

    اذا تقدر لها

    ------------------------------------------------------

    سسيرفر خورآفي ماشاء الله

    حيآآك الله

    الفكره جميله

    لكن المشكله لو فعلا سوينا الفكره

    صدقني السيرفر مايكمل يوم الا وهو مزروف :mrgreen:

    ولايخفيك بعد هناك ناس بترفع لك مودات لتخريب السيرفر !!

  16. بسم الله الرحمن الرحيم

    السلام عليكم ورحمة الله وبركاته

    آخبآركم ياشباب ان شاء الله بخير

    آقدم لكم الاصدار الثاني من تحويل الخريطه للسكربت

    فيه تعديلات كثيره وتقدر الحين تحول السيارات وال

    pickup

    صوره

    fClTcz.png

    رآبط التحميل اختر الاصدار الثاني

    V2

    https://community.multitheftauto.com/ind ... ls&id=9071

    اصغط اف 7 لفتح الوحه

×
×
  • Create New...