Jump to content

تحت التطوير :كود - Useful Arab functions


Booo

Recommended Posts

isEventHandlerAdded

function isEventHandlerAdded( sEventName, pElementAttachedTo, func ) 
    if type( sEventName ) == 'string' and isElement( pElementAttachedTo ) and type( func ) == 'function' then 
    local aAttachedFunctions = getEventHandlers( sEventName, pElementAttachedTo ) 
        if type( aAttachedFunctions ) == 'table' and #aAttachedFunctions > 0 then 
            for i, v in ipairs( aAttachedFunctions ) do 
                if v == func then 
                return true 
                end 
            end 
        end 
    end 
    return false 
end 

هذا الفنكشن لقيته يستخدمه كثير ناس لكن فيه عرب ما يدرون عنه وهو مهم جدا ومهو موجود في

https://wiki.multitheftauto.com/wiki/Useful_Functions

حطيته هنا بـ رد بس عشان اللي يبيه ياخذه :mrgreen:

طيب قل فايدته الله لا يهينك

ووش يسوي , م فهمت شيء : )

Link to comment

طيب قل فايدته الله لا يهينك

ووش يسوي , م فهمت شيء : )

فائدته انه يتأكد اذا كان الحدث هذا مضاف او لا

وتبيه اذا ضغط الزر يجي واذا راح مكان ثاني يروح منه dxDrawText مثلاً انت عندك

اوقات تصير اخطاء او بق من اللاق ويروح يدخل مره ثانيه كل شوي بالدي بق يجي خطأ انه الأفنت اساساً موجود

او تسوي زر تضغط مره يضيف ومره ثانيه يشيل الأفنت عشان يخفي التكست مره ويظهره مره

Link to comment

طيب قل فايدته الله لا يهينك

ووش يسوي , م فهمت شيء : )

فائدته انه يتأكد اذا كان الحدث هذا مضاف او لا

وتبيه اذا ضغط الزر يجي واذا راح مكان ثاني يروح منه dxDrawText مثلاً انت عندك

اوقات تصير اخطاء او بق من اللاق ويروح يدخل مره ثانيه كل شوي بالدي بق يجي خطأ انه الأفنت اساساً موجود

او تسوي زر تضغط مره يضيف ومره ثانيه يشيل الأفنت عشان يخفي التكست مره ويظهره مره

سؤال بسييط انت من ويين جبت ذا الفنكشن :lol:

Link to comment

isPlayerInThisGroups

By : Mr.R

وظيفة هذا الفنكشن يعلمك اذا الاعب في القروب الاسل الفلاني او لا , وتقدر تحط اكثر من قروب

Without-101 صاحب فكرة الفنكشن

وشكر خاص لـ ذا كيلر ساعدني

Function :

local GroupsTable = { 
    { "Console" }, 
} 
  
isPlayerInThisGroups = function ( player, groups ) 
    if ( getPlayerAccount ( player ) and not isGuestAccount ( getPlayerAccount ( player ) ) ) then 
        if ( isObjectInACLGroup ( "user."..getAccountName ( getPlayerAccount ( player ) ), aclGetGroup ( groups ) ) ) then 
            return true 
        else 
            return false 
        end 
    end 
end 

Example :

addCommandHandler ( "IamAdmin?", function ( player ) 
    for _,v in ipairs ( GroupsTable ) do 
        if ( isPlayerInThisGroups ( player, v[1] ) ) then 
            outputChatBox ( "Yes !", player, 255, 255, 255, true ) 
        else 
            outputChatBox ( "No !", player, 255, 255, 255, true ) 
        end 
    end 
end ) 
Link to comment

isPlayerInThisGroups

By : Mr.R

وظيفة هذا الفنكشن يعلمك اذا الاعب في القروب الاسل الفلاني او لا , وتقدر تحط اكثر من قروب

Without-101 صاحب فكرة الفنكشن

وشكر خاص لـ ذا كيلر ساعدني

Function :

local GroupsTable = { 
    { "Console" }, 
} 
  
isPlayerInThisGroups = function ( player, groups ) 
    if ( getPlayerAccount ( player ) and not isGuestAccount ( getPlayerAccount ( player ) ) ) then 
        if ( isObjectInACLGroup ( "user."..getAccountName ( getPlayerAccount ( player ) ), aclGetGroup ( groups ) ) ) then 
            return true 
        else 
            return false 
        end 
    end 
end 

Example :

addCommandHandler ( "IamAdmin?", function ( player ) 
    for _,v in ipairs ( GroupsTable ) do 
        if ( isPlayerInThisGroups ( player, v[1] ) ) then 
            outputChatBox ( "Yes !", player, 255, 255, 255, true ) 
        else 
            outputChatBox ( "No !", player, 255, 255, 255, true ) 
        end 
    end 
end ) 

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

Link to comment

سؤال بسييط انت من ويين جبت ذا الفنكشن :lol:

لا تحط ردود كثير مالها داعي هذا موضوع للفنكشنات :redhotevil:

لازم تغيرون مسار المواضيع انتوا ><

.. الفنكشن لقيت اجانب يستخدمونه وقلت اخذه من عندهم واحطه لكم هنا

Link to comment
  • 3 weeks later...

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

Events: onPlayerDownload and onPlayerFinishedDownload and onClientPlayerFinishedDownload

Code:

Server:

stats = {} 
  
addEventHandler("onPlayerJoin",root, 
    function() 
        stats[source] = true 
        if stats[source] ~= true then 
            return 
        end 
        triggerEvent("onPlayerDownload",source) 
    end 
) 
  
addEvent("onPlayerFinishedDownload",true) 
addEventHandler("onPlayerFinishedDownload",root, 
    function() 
        stats[source] = false 
    end 
) 
  
addEventHandler("onPlayerQuit",root, 
    function() 
        stats[source] = false 
    end 
) 

Client:

started = true 
  
addEventHandler("onClientResourceStart",root, 
    function() 
        if started ~= true then 
            return 
        end 
        triggerServerEvent("onPlayerFinishedDownload",localPlayer) 
        triggerEvent("onClientPlayerFinishedDownload",localPlayer) 
        started = false 
    end 
) 

Example:

Server:

addEvent("onPlayerDownload",true) 
addEventHandler("onPlayerDownload",root, 
    function() 
        outputChatBox("Download = true.",source,0,255,0) 
    end 
) 
  
addEvent("onPlayerFinishedDownload",true) 
addEventHandler("onPlayerFinishedDownload",root, 
    function() 
        outputChatBox("Download = false.",source,0,255,0) 
    end 
) 

Client:

addEvent("onClientPlayerFinishedDownload",true) 
addEventHandler("onClientPlayerFinishedDownload",root, 
    function() 
        outputChatBox("Download = false.",0,255,0) 
    end 
) 

Author: EXTRA

Edited by Guest
Link to comment
تقصد بمعنى ماهو واضح او وش بالضبط :?

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

وليه كل هذا انت مطولها للسالفة وهي ما تحتاج الا كم شي .

Link to comment
طيب في السيرفر لما المود يشتغل ؟

لنفترض سيرفر ريس والمابات كل شوي تحمل لكود بيرجع يشتغل ؟

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

تقصد بمعنى ماهو واضح او وش بالضبط :?

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

وليه كل هذا انت مطولها للسالفة وهي ما تحتاج الا كم شي .

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

Link to comment

اسم الفانشكن / /

getPlayerFromAccountName

الفائدة / /

يقوم بجلب اللاعب من اسم حسابه

نواتج-يقوم بأرجاع/ /

اللاعب الي ملك اسم الحساب المحدد

الارقمنت / /

سترينق - اسم الحساب

الكود / /

  
function getPlayerFromAccountName(n) 
    for i,v in ipairs(getElementsByType("player")) do  
        local ac = getPlayerAccount(v) 
        local acn = getAccountName(ac) 
        if (acn == n) then 
            return v 
        end 
    end 
    return false 
end 
  

الحقوق / /

من صنعي

مثال / /

addCommandHandler("acc-serial",function(p, command, acc) -- اضافة امر 
    if (getPlayerFromAccountName(acc)) then -- نتأكد اذا يوجد لاعب يملك الحساب 
        outputChatBox( getPlayerSerial (getPlayerFromAccountName(acc)) ,p) -- يكتب له السريال 
    else-- اذا مايملك الحساب 
        outputChatBox("يرجى التحقق من أسم الحساب",p,255,0,0) -- يظهر ان اسم الحساب غلط 
    end -- نهاية التحقق 
end -- اغلاق الامر 
) 

سيرفر سايد !

Edited by Guest
Link to comment

اول شيء معليش على خطأ اللوكل، اظن اللوب والخبصة الي تقول عليها اسهل من getAccount+getPlayerAccount

ثاني شيء الموضوع useful

يعني اشياء مساعدة ^

افضل من getAccount و getPlayerAccount

ماشوف اي خطأ بـ الكود حقي وجربته !

Link to comment
  
function getPlayerFromAccountName(n) 
    for i,v in ipairs(getElementsByType("player")) do  
        local ac = getPlayerAccount(v) 
        local acn = getAccountName(ac) 
        if (acn == n) then 
            return v 
        else 
            return false 
        end 
    end 
end 
  

عمل جميل, ولكن عندي ملاحظة

أتوقع ان الفنكشن ح يوقف من اول مرة

ليه ؟

لو عندك 3 لاعبين

else اللاعب الأول اسم حسابه ماتحقق مع الشرط بينتقل ل

return false و انت حاط فيها

Link to comment
اول شيء معليش على خطأ اللوكل، اظن اللوب والخبصة الي تقول عليها اسهل من getAccount+getPlayerAccount

ثاني شيء الموضوع useful

يعني اشياء مساعدة ^

افضل من getAccount و getPlayerAccount

ماشوف اي خطأ بـ الكود حقي وجربته !

مفيد في حالة انه شغال تمام ومافيه اخطاء

لاكن في حالتك انت اتفق مع :

عمل جميل, ولكن عندي ملاحظة

أتوقع ان الفنكشن ح يوقف من اول مرة

ليه ؟

لو عندك 3 لاعبين

else اللاعب الأول اسم حسابه ماتحقق مع الشرط بينتقل ل

+

ما اضن اللوب و الخبصه الي مسويها حتى المتغيرات مو حاطها لوكل رح تكون افضل من الفنكشين ذول
getAccount 
getAccountPlayer 

Link to comment
  
function getPlayerFromAccountName(n) 
    for i,v in ipairs(getElementsByType("player")) do  
        local ac = getPlayerAccount(v) 
        local acn = getAccountName(ac) 
        if (acn == n) then 
            return v 
        end 
    end 
    return false 
end 
  

عمل جميل, ولكن عندي ملاحظة

أتوقع ان الفنكشن ح يوقف من اول مرة

ليه ؟

لو عندك 3 لاعبين

else اللاعب الأول اسم حسابه ماتحقق مع الشرط بينتقل ل

return false و انت حاط فيها

تم أصلاح المشكلة ! :) وشكراً لعناد !

Link to comment

removeAllOccupantsInVehicle

Syntax :

bool removeAllOccupantsInVehicle(vehicle theVehicle) 

Required Arguments :

theVehicle : The vehicle you want to remove the occupants

Returns :

Returns true if the vehicle was removed all occupants, false if invalid arguments were passed to the function.

Code :

function removeAllOccupantsInVehicle(vehicle) 
    if isElement(vehicle) and getElementType(vehicle) == "vehicle" then 
        for k,v in pairs(getVehicleOccupants(vehicle)) do 
            if isElement(v) then 
                return removePedFromVehicle(v) 
            end 
        end 
    end 
    return false 
end 

Example :

addCommandHandler("removeAllOccupantsInVehicle", function(plr) 
    local vehicle = getPedOccupiedVehicle(plr) 
    if vehicle and getVehicleController(vehicle) == plr then 
        removeAllOccupantsInVehicle(vehicle) 
    end 
end) 

Link to comment

getColorsByRandom

وظيفة تقوم بالحصول على الوان عشوائيه بشكل مميز

لشتغيل الوظيفة بشكل مستمر onClientRender تحتاج الوظيفة الى حدث

Syntax:

int, int, int getColorsByRandom ( ) 

Code:

started = true 
  
addEventHandler("onClientResourceStart",root, 
    function() 
        if started == true then 
            start = getTickCount() 
            addEventHandler("onClientRender",root,red) 
        end 
        started = nil 
    end 
) 
  
function getColorsByRandom() 
    return r,g,b 
end 
  
function red() 
    now = getTickCount() 
    endTime = start + 2000 
    elapsedTime = now - start 
    duration = endTime - start 
    progress = elapsedTime / duration 
  
    r,g,b = interpolateBetween(255,0,0,0,255,0,progress,"Linear") 
    r,g,b = r,g,b 
  
    if now > endTime then 
        removeEventHandler("onClientRender",root,red) 
        start = getTickCount() 
        endTime = start + 2000 
        addEventHandler("onClientRender",root,green) 
    end 
end 
  
function green() 
    now = getTickCount() 
    endTime = start + 2000 
    elapsedTime = now - start 
    duration = endTime - start 
    progress = elapsedTime / duration 
  
    r,g,b = interpolateBetween(0,255,0,0,0,255,progress,"Linear") 
    r,g,b = r,g,b 
  
    if now > endTime then 
        removeEventHandler("onClientRender",root,green) 
        start = getTickCount() 
        endTime = start + 2000 
        addEventHandler("onClientRender",root,blue) 
    end 
end 
  
function blue() 
    now = getTickCount() 
    endTime = start + 2000 
    elapsedTime = now - start 
    duration = endTime - start 
    progress = elapsedTime / duration 
  
    r,g,b = interpolateBetween(0,0,255,255,0,0,progress,"Linear") 
    r,g,b = r,g,b 
  
    if now > endTime then 
        removeEventHandler("onClientRender",root,blue) 
        start = getTickCount() 
        endTime = start + 2000 
        addEventHandler("onClientRender",root,red) 
    end 
end 

Example:

addEventHandler("onClientRender",root, 
    function() 
        r,g,b = getColorsByRandom() 
        dxDrawText("Hello Word!",500,500,0,0,tocolor(r,g,b,255),1,"default-bold","center","center") 
    end 
) 

Author: EXTRA

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...