-
Posts
2,799 -
Joined
-
Days Won
13
Everything posted by </Mr.Tn6eL>
-
اذا كان اكوانت داتا مايحتاج إس كيو ال يعني على حسب نظام الساعات حقك
-
لازم تعرف اي دي الاوبحكت engineLoadTXD engineImportTXD
-
استخدم الشادر لكن اسهل تستخدم txd اذا تبغى شادر استخدم dxCreateShader dxCreateTexture dxSetShaderValue engineApplyShaderToWorldTexture
-
طلبك مو واضح يعني تبغى صورة ثري دي على الارض ولا اوبجكت
-
كأنك تقول بدون الثلاثي ذولي ماراح يفوزون
-
غثيان
-
مابقي الا تفتحون وزارة الزراعة
-
mysql قاعدة بيانات اتصل فيها من السيرفر و الموقع بنفس الوقت
-
الفديو خاص
-
منورين، اذا عندكم حاجة صعبة مو أنتم فاهمينها قولو لي أشرحها لكم
-
اقصد تكون ماهي مشفرة وتقدر تعدلها كأنها كود
-
GTA V Wasted System v.( Beta ) الاصدار الاول
</Mr.Tn6eL> replied to AHMED MOSTAFA's topic in المساهمات
جميل جداًً، ماعليك من اللي يقول مسروق أنت عارف انه مو مسروق فقوانين المنتدى تمنع اتهام السرقة- 10 replies
-
- 1
-
- gta v wasted
- gta 4u scripts
-
(and 1 more)
Tagged with:
-
SVG لو كبرت الصورة مليون مرة او صغرتها ماتتغير جودتها وام تي اي ماتدعمها لكن تقدر عن طريق وظائف المتصفح لكن اتوقع لاق و تكون الصورة ماهي مشفرة تكون كانها اكس ام ال تقدر تعدلها وتحركها بكيفك PNG تدعم شفافية الصورة وتدعمها ام تي اي لكن جودة الصورة تكون ضعيفة لو كبرتها او صغرتها لكن لاق ماتجيب
-
شوف ما ابغى استهزي في لكن الوظيفة اشوف انها مضحكة ومالها داعي لأن وظيفة getElementsByType تفي بالغرض
-
باك، راح أشرح لكم اليوم الغاء الحدث هناك وظيفة وحدة لإلغاء حدث معين وش الفائدة من الغاء الحدث مثلا تبغى تمنع لاعب من الكتابة بالشات او من الدخول للسيرفر او الخ... لكن بعض الاحداث لايمكن الغائها مثل خروج الاعب من السيرفر ولكي تعرف هل الحدث ينلغي أو لا اتبع المربع الأحمر بالصورة التالية الآن راح نشرح لكم كيف تلغي الحدث لكي تلغي الحدث عليك استخدام cancelEvent : للحدث العادي cancelLatentEvent : latent event للأحداث الآن راح نعطي لكم تركيب الجملة تركيب الجملة لدى السيرفر يكون هكذا bool cancelEvent ( [ bool cancel = true, string reason = "" ] ) cancel : قيمة منطقية لإلغاء reason : سبب الإلغاء تركيب الجملة لدى الكلنت يكون بدون اي ارقمنت bool cancelEvent () latent event اما في الغاء bool cancelLatentEvent( player thePlayer, int handle ) thePlayer : الاعب المراد الغاء الحدث له handle : latent eventعملية في الكلنت مايحتاج ارقمنت لاعب زي كذا bool cancelLatentEvent( int handle ) الآن راح نعطي امثلة راح نلغي دخول الاعب لسيارة الشرطة اذا كان مو شرطي addEventHandler("onVehicleStartEnter", root, function(player) -- استقبال افنت عند فتح الباب حق السيارة local model = getElementModel(source) -- نجيب اي دي السيارة if (model >= 596 and model <= 599) and getPlayerTeam(player) ~= getTeamFromName("Police") then -- تحقق ان السيارة شرطة وان الاعب مو في تيم الشرطة cancelEvent( ) -- الغاء الحدث end end) الآن راح نسوي سبب لالغاء الحدث ويصير الكود كذا addEventHandler("onVehicleStartEnter", root, function(player) -- استقبال افنت عند فتح الباب حق السيارة local model = getElementModel(source) -- نجيب اي دي السيارة if (model >= 596 and model <= 599) and getPlayerTeam(player) ~= getTeamFromName("Police") then -- تحقق ان السيارة شرطة وان الاعب مو في تيم الشرطة cancelEvent(true, "You are not a policeman") -- الغاء الحدث outputChatBox(getCancelReason(), player) -- نكتب سبب الالغاء end end) الآن ساشرح لكم كيف تقوم بحذف استقبال حدث معين removeEventHandler لكي تلغي استقبال حدث معين علينا استخدام تركيب الجملة كالآتي bool removeEventHandler ( string eventName, element attachedTo, function functionVar ) eventName : اسم الحدث attachedTo : الالمنت المربوط بهذا الحدث functionVar : الوظيفة المربوطة بالحدث الآن سأعطيك مثال والمثال هذا يظهر نص ل10 ثواني ويختفي function drawText( ) -- وظيفة الحدث dxDrawText("Text", 0, 0) -- رسم النص end addEventHandler("onClientRender", root, drawText) -- اضافة الحدث لكي يرسم النص setTimer(removeEventHandler, 10000, 1, "onClientRender", root, drawText) -- نقوم بحذف الحدث المربوط بالالمنت والوظيفة
-
الملف معطوب شوف الموقع اللي اعطاك اياه او ابحث بقوقل عن المشكلة
-
نسيت مقولة دراغون Someday ... I will change the world ! هذي بتوقيعي
-
Latent Eventsالآن سأشرح لكم ال لكن ماهو هذا؟ أنه يشبه الحدث العادي لكن هذا الحدث يتحكم بمقدار البيانات التي يتم ارسالها ما فائدتها ؟ لها فوائد كثيرة منها تحميل الملفات والبيانات الكبيرة هذه الوظائف triggerLatentClientEvent و triggerLatentServerEvent triggerClientEventو triggerServerEvent نفس تركيب الجملة لدى لكن يزداد بعض الارقمنات وهي bool triggerLatentServerEvent ( string event, [int bandwidth=5000, bool persist=false,] element theElement, [arguments...] ) bandwidth: عدد البايتات التي يتم ارسالها بالثانية persist: يتم وضع قيمة صحيحة اذا كنت تريد استمرار نقل البيانات بعد ايقاف المود مثال لتحميل صورة من السيرفر وعرضها يكون السيرفر هكذا if fileExists("image.png") then -- نتحقق ان الصورة موجودة في المود local file = fileOpen("image.png", true) -- نفتح ملف الصورة على وضع القراءة فقط local data = fileRead(file, fileGetSize(file)) -- احظار محتويات الملف triggerLatentClientEvent("onClientSendImageData", 524288, false, root, data) -- ارسال البيانات للكلنت fileClose(file) -- اغلاق الملف end اما الاستقبال بالكلنت يكون كأي استقبال addEvent("onClientSendImageData") addEventHandler("onClientSendImageData", root, function(data) local file = fileCreate("image.png") -- صنع ملف fileWrite(file, data) -- كتابة بيانات الصورة التي تم تحميلها fileClose(file) -- اغلاق الملف guiCreateStaticImage(0, 0, 150, 150, "image.png", false) -- عرض الصورة على الشاشة end) يتبع ليوم غد بإذن الله
-
bool addEvent ( string eventName [, bool allowRemoteTrigger = false ] ) eventName : اسم الحدث المراد تسجيله allowRemoteTrigger : تمكين الحدث من استقباله عن بعد اي عبر مود اخر الآن نكمل مثالنا السابق ويصبح هكذا addEvent("onPlayerClientResourceLoaded") -- تسجيل هذا الحدث addEventHandler("onPlayerClientResourceLoaded", root, function(res) -- استقبال الحدث كما شرحناه سابقاً outputChatBox(getPlayerName(source).." triggered the "..eventName) -- كتابة اسم الاعب(السورس) و اسم الحدث outputChatBox(getResourceName(res)) -- كتابة اسم المود end) الآن سنعطيك مثال أخر نريد امر في اف 8 يعطينا معلومات الاعبين في ميمو مثلا يكون الامر getinfo ونضع بعدها اسم الاعب ويعطينا اسم الاعب في ميمو الاعب الذي طلب المعلومات سيكون السيرفر هكذا addCommandHandler("getinfo", function(plr, cmd, name) -- اضافة الامر في اف 8 local plr2 = type(name) == "string" and getPlayerFromName(name) -- نجلب الاعب من اسم المدخل if isElement(plr2) then -- نتحقق انه الممنت local serial = getPlayerSerial(plr2) -- نجلب السيريال local account = getPlayerAccount(plr2) -- نجيب الحساب local accountName = "Guest" -- اسم الحساب سيكون زائر if account and not isGuestAccount(account) then --نتحقق ان لديه حساب accountName = getAccountName(account) -- نغير اسم الحساب من زائر الى اسمه الحقيقي end local version = getPlayerVersion(plr2) -- نجلب اصدار ام تي ايه لدى الاعب local ip = getPlayerIP(plr2) -- نجلب الاي بي local frmt = "Name : %s\nSerial : %s\nIP : %s\nAccount : %s\nVersion : %s" -- سيكون النص بالشكل الآتي triggerClientEvent(plr, "onClientRequestPlayerInfo", plr, frmt:format(name, serial, ip, accountName, version)) -- نرسل الآمر الى الكلنت else -- اذا كان ليس لاعب المدخل outputChatBox("Player not found", plr) -- نعلم بأنه لا يوجد لاعب بالاسم المدخل end -- اغلاق التحقق end) -- addCommandHandler اغلاق الوظيفة وقوس اغلاق لدى وسيكون الكلنت بهذه البساطة addEvent("onClientRequestPlayerInfo") -- اضافة الحدث الجديد addEventHandler("onClientRequestPlayerInfo", localPlayer, function(text) -- استقبال الحدث guiSetText(memo, text or "invaild information") -- وضع المعلومات في الميمو end) -- اغلاق قوس الحدث والوظيفة يتبع... الآن سأشرح لكم كيفية إرسال حدث من نفس الجهة bool triggerEvent ( string eventName, element baseElement, [ var argument1, ... ] ) اعتقد ان الارقمنات من الأسماء فهمتها لذا سننتقل الى المثال وسيكون هذا المثال ارسال حدث اذا تم فتح القائمة الرئيسية او إغلاقها local actived = isMainMenuActive( ) -- وضع متفير للتحقق بين القيمة الثابتة والمتغيرة addEventHanlder("onClientRender", root, function( ) if isMainMenuActive( ) ~= actived then -- يتحقق ان القائمة الرئيسية مفتوحة مع المتفير الثابت triggerEvent("onClientMainMenuEvent", localPlayer, isMainMenuActive( )) -- ارسال الحدث مع حالة القائمة الرئيسية actived = isMainMenuActive( ) -- تغير القيمة الثابتة لتحقق من المرات القادمة end end) addEvent("onClientMainMenuEvent") -- تسجيل الحدث الجديد addEventHanlder("onClientMainMenuEvent", root, function(status) -- استقبال الترايقر outputChatBox(status and "Opened" or "Closed") -- كتابة بالشات هل مفتوحة ام لا end) -- اغلاق الحدث والوظيفة
-
بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته اليوم سأشرح لكم الأحداث ماهي الأحداث؟ الأحداث هي نظام تم برمجة لتشغيل الوظائف عندما يحدث شيء مثل دخول الاعب الماركر او دخول الاعب السيرفر والخ... يتم ربط هذا النظام في نظام الالمنت كيفية استخدام هذا النظام؟ addEventHandler لكي تقوم باستخدام هذا النظام عليك اولا ربط الوظيفة في الاعب عند طريق وعند القيام بذلك سوف تقوم الوظيفة بعملها على الالمنت المربوط بالوظيفة children, parent لكن عندما يكون الالمنت لديه صلة بالمنت اخر سواء كان سوف اشرح هذه الصلة في درس اخر عند استقبال حدث ما يتم تعريف متغيرات مخفية وهذه هي قائمة المتغيرات source : مصدر الحدث وهو الالمنت الذي تم ربط الحدث به eventName : (onPlayerQuit)اسم الحدث مثل this : الالمنت الذي تم ربطه بالوظيفة المستقبلة للحدث جميع الوظائف أعلاه بجانب السيرفر والكلنت وهناك ايضا متغير مخفي فقط في السيرفر client : هو الاعب الذي تم ارسال الحدث من جهته انتهينا من المتغيرات المخفية الآن ننتقل الى العوامل في الوظيفة المستقبلة ليس هناك نوع محدد من العوامل لكن لكل وظيفة عوامله الخاصة إذا كيف اقوم بمعرفة العوامل في الحدث paramaters اذهب إلى صفحة الويكي الخاصة بالحدث وقم بإيجاد قسم كما بالصورة التالية بالصورة تجد العوامل محددة بالمربع الأحمر ملاحظة : قد لا يوجد عوامل في بعض الاحداث لذا راجع الويكي لكي تعرف الوظيفة إذا لننتقل إلى المرحلة التالية هناك نوعين من الأحداث نوع مخصص مسبقا اي انه لا داعي لتشغيله - نوع يتم تخصيصه برمجياً اي أنه يتم تشغيه - كيفية استخدام النوع الأول أولا عليك معرفة الحدث اللي تريد استخدامه والذي خصصه فريق ام تي اي للاستخدام تجدها هنا https://wiki.multitheftauto.com/wiki/Client_Scripting_Events https://wiki.multitheftauto.com/wiki/Server_Scripting_Events النوع الأول مخصص للكلنت والنوع الثاني مخصص للسيرفر الآن سنشرح كيف تقوم باستقبال حدث addEventHandlerلكي نقوم بإستقبال حدث ما علينا استخدام علينا ان نشرح كيف نقوم بتركيب الجملة لدى هذه الوظيفة bool addEventHandler ( string eventName, element attachedTo, function handlerFunction, [ bool getPropagated = true, string priority = "normal" ] ) الارقمنات المطلوبة eventName: اسم الحدث المراد استقباله attachedTo: الالمنت المراد ربطه باستقبال هذا الحدث مثلا اذا كنت تريد للاعب محدد دخول ماركر يجب عليك وضعه هنا لكي يقوم باستقبال (root)الحدث لدى هذا الاعب فقط واذا كنت تريد لجميع الاعب استخدم الالمنت العام handlerFunction: الوظيفة المراد تشغيلها عند استقبال هذا الحدث الارقمنات الاختيارية getPropagated: اذا كنت تريد تشغيل هذا الحدث لدى جميع فروع هذا الالمنت ضعها قيمة صحيحة واذا كنت تريد ضعها خاطئة سأشرحها في درس أخر priority : أولية استقبال هذا الحدث اذا كان هناك حدث تريد استقباله بنفس الطريقة وتريد ان يبدا مثلا باستقبال هذا اولاً وهكذا هناك قيم عليك وضعها ولكل منها عمل خاص "high" "normal" "low" ويمكن وضعها بارقام مثلا low-999 high-999 low+999 اي قيمة رقم لكن يجب ان تكون ال- او + لاغير والآن شرحنا كيفية تركيب الجملة وهكذا onPlayerQuitلنختار حدث (هذا الحدث يقوم بالعمل اذا الاعب خرج من السيرفر(اي لاعب لكي نقوم باستقبال هذا الحدث ومعرفة من خرج من السيرفر يجب استخدام وظيفة addEventHandler("onPlayerQuit", root, function(quitType, reason, responsibleElement) outputChatBox(getPlayerName(source)) -- نقوم بكتابة اسم الاعب اللي خرج -- outputChatBox : اخراج نص بالشات -- getPlayerName : احضار اسم لاعب ما -- source : مصدر الحدث وهو الاعب الذي خرج من السيرفر outputChatBox(quitType) -- كتابة سبب الخروج بالشات if reason then -- نقوم بالتحقق ان هناك سبب outputChatBox(reason) -- كتابة سبب الخروج بالشات -- reason : هو سبب اعطاء الكيك او الباند، سوف يعطيك قيمة فولس اذا كان نوع الخروج ليس باند او كيك end if isElement(responsibleElement) and getElementType(responsibleElement) == "player" then -- نتحقق ان الالمنت اللذي قام بإعطاء كيك او باند لاعب ان نوعه هو لاعب outputChatBox(responsibleElement) --(الشاشة السوداء او اف 8) كتابة الاعب الذي قام بإعطاء الاعب كيك او باند قد يكون كونسل -- لكن نحن تحققنا مسبقاً انه لاعب end end) الآن شرحنا كيفية استخدام النوع الأول الآن النوع الثاني مالفائدة من النوع الأول؟ الفائدة تكمن اذا كنت تريد ارسال حدث خاص بك الى السيرفر او الكلنت او الجهة نفسها اللي تم ارسالها منها ولك مثال مشهور جدا وهو لوحة التسجيل لكي تقوم بعمل لوحة تسجيل عليك استخدام لوحة بالكلنت وتسجيل الدخول بالسيرفركيف اقوم بالربط؟ نعم نعم هذه هي الفائدة منها كيف الاستخدام؟ لكي تقوم بارسال حدث يجب عليك استخدام الوظائف الثانية triggerServerEvent : وظيفة تقوم بتشغيل الحدث من جهة الكلنت الى السيرفر اي لايمكن استخدامها الا بالكلنت bool triggerServerEvent ( string event, element theElement, [arguments...] ) الارقمنات المطلوبة event : اسم الحدث المراد تشغيله theElement : الالمنت هو مصدر الحدث(السورس) الارقمنات الاختيارية arguments : العوامل المراد ارفاقه مع الحدث انظر الشرح فوق لتفهم triggerClientEvent : وظيفة تقوم بتشغيل الحدث من السيرفر الى الكلنت وايضا هي وظيفة سيرفر اي لايمكن تشغيلها الا بالسيرفر bool triggerClientEvent ( [table/element sendTo=getRootElement()], string name, element sourceElement, [arguments...] ) sendTo: القيمة الافتراضية لهذا الارقمنت هو الروت واذا كنت تريد لاعب محدد ترسل اليه الترايقر ضع هذا الاعب وهكذا واذا كنت تريد وضع لاعبين محددين ضع جدول به الاعب وضعه بهذا الارقمنت (ارقمنت اختياري طبعاً) name : اسم الحدث المراد تشغيله بالكلنت sourceElement : مصدر او سورس هذا الحدث arguments : العوامل المراد ارفاقه مع الحدث انظر الشرح فوق لتفهم اختيارية طبعاً triggerEvent : تقوم هذه الوظيفة بتشغيل حدث من الجهة نفسها اي انه اذا تم تشغيلها ممن السيرفر يتم استقبالها بالسيرفر وههكذا ويعني انها وظيفة بكلها الجانبين سيرفر والكلنت لكن الاستقبال بنفس الجهة bool triggerEvent ( string eventName, element baseElement, [ var argument1, ... ] ) eventName : اسم الحدث المراد تشغيله baseElement : مصدر او سورس هذا الحدث , [ var argument1, ... ] : العوامل المراد ارفاقه مع الحدث انظر الشرح فوق لتفهم اختيارية طبعاً الآن نريد ان نعطيك مثال مثلا نريد ان نرسل حدث يقوم بالتأكد أن اي مود انتهى تحميله او لا اولا يجب وضع الكود الذي يقوم بارسال هذا الحدث الى السيرفر addEventHandler("onClientResourceStart", root, function(res) -- استقبال حدث اذا المود اشتغل triggerServerEvent("onPlayerClientResourceLoaded", localPlayer, res) -- ارسال حدث حدث ليتم استقباله بالسيرفر end) الآن نستقبله جانب السيرفر لكن لم اشرح كيف اقوم بتسجيل هذا الحدث بقائمة الأحداث طبعا سنحتاج وظيفة addEvent يتبع...
-
getPlayerSerial نصور مايحتاج ارقمنت الاعب في
-
2 years (until now)