-
Posts
458 -
Joined
-
Days Won
21
Posts posted by xLive
-
-
playercolors أعتقد سكربت
بعد onPlayerChat يستخدم- 1
-
طيب ممتاز انت الان مفروض بكودك تستعمل
dxShaderSetValue
عشان تعطي الشادر النص
dxDrawImage الارقمنت يلي تعطيه فوق تقدر تحطه هنا
وبينرسم لك فاللوحة نفس يلي يظهر بالسيارة ما يحتاج تسوي دوران أو تغير الحجم
إذا تستخدم طريقة ثانية ياليت توضحها وتحط جزء من الكود عشان نشوف كيف النص ينصنع في الزجاجOn 05/01/2024 at 12:16, ,3ZF said:وياريت لو عندك رقم تواصل او اي حساب ثاني غير المنتدى اتواصل معك فيه يكون احسن لان المنتدى ضيع وقتي كثير و انت ترد متأخر للأسف
أي افضل لأن الظاهر حتى انت ما يوصلك اشعارات
اسأل في قناة البرمجة العربية وبرد عليك على طول إن شاء الله https://discord.gg/mtasa تفضل ديسكورد اللعبة:
-
On 03/01/2024 at 23:51, ,3ZF said:
محتاج أظهرها بالسياره و اللوحه برضو يعني الكتابه الي تظهر على السياره تيجي على صورة باق قراوند مثل الفوتوشوب بس في لوحه دجس عادي يعني المطلوب اني كيف اجيب النص الي ع قزاز السياره على صورة باق قراوند أنا ضايفها و كذلك الدوران يكون نفس الي ع السياره
عشان ترسم على زجاج المركبة فيه طريقتين
الزجاج يواحد ثاني فيه النص أو اللون يلي اختاره الاعب Texture تستبدل
حق المركبة؟ Texture كيف تستبدل الـ
:في طريقتين-
TXD عبر ملف
لكن هذا ما راح ينفع مع فكرتك، لأن راح يتطبق في جميع السيارات بنفس الايدي -
عبر الشادر
من أي مصدر تقدر تستخدم Texture وهنا عندك حرية أكبر تقدر تستبدل الزجاج مثلا بـ
كلهم تقدر من خلالهم تعطيه الشادر ويستبدله لك dxCreateTexture, dxCreateRenderTarget
الميزة الأكبر بعد تقدر تحدد الشادر يتطبق لكائن معين، وكذا لو استبدلت الزجاج على سبيل المثال راح يظهر في السيارة المطلوبة فقط
تمام كيف نطبق الطريقة الثانية؟
واحد لجميع زجاج السيارة وبعض الأجزاء زي ما تشوف بالصورة Texture خبرتي مو كبيرة في المجسمات، لكن زجاج السيارات للأسف الـ
فالحل هنا انك تعدل مجسم السيارة وتعدله بحيث يكون كل زجاج له
خاص عشان تقدر تستبدله وإذا مجسم السيارة عندك معدل عادة بعضهم يكون مسوين هذا الشيء، تقدر تتأكد باستخدام هذا السكربت (يلي مستخدمه بالصورة بالأعلى)Texture
shader_tex_names
منه للزجاج المطلوب تبدأ تصنع الشادر Texture إذا لقيت اسم الـ
engineApplyShaderToWorldTexture وتسوي نفس المثال الأول الموجود في صفحة
شرحتها في أول تعليق وأنصحك تجلس تجرب فيه عشان تفهم فكرة الرندر التارقت Texture كيف اعطي الفنكشن يلي فوق نص على هيئة؟
تقدر ترسمه باللوحة كأنه صورة عادية Texture وبما انك حولت النص لـ
Texture فيه طريقة ثانية بدون صداع الشادر واستبدال الـ
dxDrawMaterialLine3D إنك بكل بساطة تحسب إحداثيات ثلاثيات الأبعاد للزجاج وترسمه باستخدام
الفنكشن يلي فوق تقدر تعطيه للنافذة Texture ونفس الـ
الدوان والحجم وغيره هذا كله تطبقه في الرندر تارقت -
TXD عبر ملف
-
الظاهر اني فهمتك غلط، انت الآن يعني مسوي نظام التظليل وتظهر بالسيارة وتحتاج تظهرها باللوحة فقط؟
إذا يب مفروض عندك بالكود وظيفة
dxSetShaderValue
هذا مفروض ينعطى له الصورة يلي تكون في المركبة؟ تقدر تستخدمها في
dxDrawImage
إذا ما تستخدمها ممكن تحط الجزء يلي تصنع فيه الشادر وتستبدل فيه زجاج المركبة؟
واعتذر على التأخير -
وعليكم السلام
فقط من خلال الشادر ويبدو إنك تعرف كيف تسوي هذا الشيء Texutre تستبدل الـ
تستخدم شيء اسمه رندر تارقت Texture لكن لتحويل الدي اكس لـ
تقدر تعطيه الشادر وتشوفه بالسيارة Texture ايش يعني الرندر تارقت؟ باختصار شديد مثل الورقة تصنعه وتحدد حجم "الورقة" وبعدها ترسم فيه الدي اكس (مرة واحدة لا تضيف حدث الرندر) وخلاص هو
وإحداثيات الرسم تبدأ من أعلى الشاشة باليسار والدوران والحجم وغيره تحدده من وظائف الدي اكس كأنك ترسمه عالشاشة
dxDrawImage وتقدر أيضًا تعرض الرندر تارقت على الشاشة عشان تعرضها للاعب أو وانت تتأكد إنه صحيح باستخدام
وأيضًا يفيد في اشياء آخرى الرندر تارقت، مثلًا في صفحة الويكي عنده 4 صور رسمهم في رندر تارقت وبكذا خلاص ما يحتاج
أربع مرات، يحتاج فقط يرسم الرندر تارقت لأن هو فيه جميع الصور، وكذا يوفر استهلاك معالج أكبر dxDrawImage يستخدم
الذاكرة العشوائية لكرت الشاشة فإذا ما تحتاجه مثلا السيارة صارت بعيدة أو تدمرت أنصحك تدمر الرندر تارقت والشادر عشان ما يكون فيه استهلاك دون فائدة وكراشات VRAM وبالمقابل يستخدم الـ -
Happy holidays everyone!
- 1
-
وعليكم السلام ورحمة الله وبركاته
ليش صرت تشوفهم بكثرة؟ السبب مشروح هناباختصار المطورين المتفرغين لتطوير لحماية ضد الغش صاروا جدًا قليلين. وأغلب الأشياء يلي تشوفها للأسف هي بكل اختصار عبارة عن أخطاء سكربتات يتم إستغلالها من قبل الغشاشين
كثير خوادم يستعملون سكربتات جدا قديمة فيها كثير أخطاء برمجية، وفيه أيضًا كثير أشخاص ما تعرف تبرمج بشكل صحيح. وللأسف يعتمدون فقط على حماية اللعبة بدل ما يصلحون السكربتات ويضيفون حماية للأشياء يلي يواجهونها
كيف أحمي خادمي وأتصدى للغش؟ هذا منشور يشرح كيف بشكل بسيط.بالتوفيق
-
guiSetSelectedTabوعليكم السلام. تقدر تغيره عبر
guiGetEnabled كيف تعرف التاب المفتوح؟ تقدر تحطهم مثلا في جدول وعشان تبحث تسوي لوب للجدول وتقدر تعرف إذا مقفل أو مفتوح بواسطة -
-
1 hour ago, ,3ZF said:
تقصد أن لازم استخدم صورة بالأساس مو زر و في هذه الحاله اقدر استخدم الخواص حقتها الي هي الدوران rotation
طيب أنا ابي اسوي مثل هذه الصوره ... كيف شكلها شكل زر بالأساس و داخلها صوره؟
https://k.top4top.io/p_29046xgm50.jpg
زر وداخله صورة فقط
:مثالlocal button = dgsCreateButton (...) -- نصنع زر طبيعي بدون أي كلام local image = dgsCreateImage(0,0,25,25,"image.png",false,button) -- الإحداثيات مثال، اهم شيء نحدد "أب" للصورة. كذا راح تنصنع داخل الزر dgsSetProperty(image,"rotation",90) -- نغير دوران الصورة لـ 90 درجة
-
وعليكم السلام، ما تقدر بواسطة الخواص حقت الزر.
هو الزر، وكذا راح تنصنع الصورة داخل الزر وتقدر تغير دورانها بواسطة الخواص parent وتحط الـ dgsCreateImage لازم تصنع صورة باستخدام
-
.وعليكم السلام، التصرف الصحيح ضدها هو منع الغشاشين من فعل أي تأثير
:وهذا يتم على مرحلتين- حماية السكربتات: مثل ما تم توضيح لك سابقًا؛ أغلب المشاكل والضرر الكبير تتم بسبب سوء كتابة السكربتات ويتم استغلالها من قبل الغشاشين. الحل هنا هو كتابة السكربتات بشكل صحيح لمنع الغشاشين من استغلالهم. وهنا شرح على ذلك
-
حماية ضد الغش: وهذا ضد الأشياء يلي تتم دون استغلال احد السكربتات، مثل التفجير والطيران وغيره. هذا يتم كشفها بواسطة تحققات لكشف هذي الأشياء
:نأخذ التفجير على سبيل المثال فيه وظائف تم إضافتها يمكن استعمالها لصنع حماية ضدها مثل
onExplosion, onPlayerProjectileCreation, onPlayerDetonateSatchels
جميعها من خلالهم تقدر تسوي منها حماية بسيطة لكشفهم، على سبيل المثال لاعب ارسل صواريخ دبابة؛ لكن هو غير موجود في دبابة من الأساس أو خادمي لا توجد له طريقة بإطلاق صواريخ. وغيرها الكثير من الأشياء تقدر تضيفها
onPlayerTriggerEventThreshold وفيه أحداث غيرها تقدر تساعدك مثلا
وباقي الأشياء على نفس الطريقة يحتاج فقط منطق برمجي ممتاز
-
triggerServerEvent وعليكم السلام، إذا الاعب ضغط زر إظهار الصورة ترسل تريقر لجانب الخادم
triggerClientEvent بعدها جانب الخادم يتحقق إذا الاعب عنده الصلاحية يظهر الصورة بعدها ترسل تريقر لكل الاعبين لجانب العميل بإستخدام
وفي جانب العميل تستقبل الايفنت وتظهر الصورة بشكل عادي
8 minutes ago, KhaledX said:وعليكم السلام , جرب هالكود
local screenVisible = false -- حالة الصورة | False = Not Show | True = Show | local imageToShow = "path/to/image.png" -- مسار الصورة function toggleScreen() screenVisible = not screenVisible if screenVisible then -- عرض الصورة لكل الموجودين بالسيرفر for _, player in ipairs(getElementsByType("player")) do setElementData(player, "customImage", imageToShow) end setTimer(hideScreen, 3000, 1) -- مدة عرض الصورة ( 3 ثواني ) else -- اخفاء الصورة عن جميع اللي بالسيرفر for _, player in ipairs(getElementsByType("player")) do setElementData(player, "customImage", nil) end end end function hideScreen() toggleScreen() end addCommandHandler("showImage", toggleScreen)
إستعمالها هنا سيء جدًا element dataلا أنصح في هذي الطريقة أخ خالد
لازم يستخدم جانب الخادم ليتحقق من صلاحية الاعب من إظهار الصور للجميع، أو الغشاشين راح يقدروا يستغلوا هذي الطريقة لإظهار الصور -
وعليكم السلام
rulesTable وين معرف؟
handlePunishment و وين يشتغل
لأن انت تاخذ منه القيمة
kickPlayer أيضًا لا تسمي وظائفك بنفس اسم وظائف موجودة بالفعل لأن راح يسبب لك مشاكل في إستعمالها مثل- 1
-
وعليكم السلام
ما يتحدث نهائيًا إلا في حال كانremainingTimeUntilNextLotto ركز في كودك، المتغير
lottoActive مفعل
وفي كودك ما تظهر الوقت إلا لو كان غير مفعل، يعني مستحيل المتغير يتحدث
لكن عالعموم انا اشوف استعمال الوقت غير مناسب هنا والأفضل تستعمل التايمر لأن اصلا تحتاجه
setTimer
getTimerDetails التايمر راح يشغل لك وظيفة بعد وقت معين راح يفيدك هنا، وتقدر تعرف منه كم باقي وقت عبر -
للأسف تحتاج تكون عارف برمجة، الموضوع مو فقط انك تضيف سكربت حماية وخلاص لأن كثير سكربتات منشورة للأسف مكتوبة بشكل خاطئ والغشاشين يستغلوها. لازم تراجع السكربتات المثبتة عندك وتتأكد من الأشياء يلي فيها وتعدله
-
Just now, Everyone said:
يخوي الموضوع هاد بدأ خلال اخر اسبوعين
اول مره اشوف مشكله زي هيك
اللاعب بيعدل تاب اللاعبين بسهولة
ويتحكم بالداتا عادي
.الأشياء يلي ذكرتها غير جديدة، موجودة من سنين؛ الشيء الجديد إن فيه ناس يستهدفوا خادمك
.في حال حميت سكربتاتك بشكل صحيح ما راح تواجه هذي المشاكل -
.وعليكم السلام ورحمة الله وبركاته، الأشياء يلي تم ذكرها هي سوء برمجة وعدم الاهتمام بالحماية
Script Security اقرأ هذه الصفحة لحماية خادمك -
-
setPedHeadless راح يزيل رأس الاعب فقط
killPed عشان تقتل الاعب تستخدم- 1
-
لتغيير وضعية الكام setCameraMatrix استخدم
-
5 hours ago, Mersad said:
Thank you so much! That solved my problem.
The reason I’m not using dgsCreateImage is that I want to create smooth and fluid animations for my background images to make them more visually appealing. As far as I know, this isn’t possible using GUI or DGS elements. Is that correct?
I don't know what fluid animations mean for images. DGS has a lot of animation functions that can be found here, and you can also create your own animations. For CEGUI, you can use a timer or onClientRender event, along with interpolateBetween, for moving, sizing animations, etc..
- 1
-
@Mersad Your thread has been moved to the Scripting section. Please use it for scripting questions in the future.
3 hours ago, Mersad said:The DGS elements are appearing behind the dxDraw element that I’m using as a background.
That's because your draw functions are being executed after DGS finishes its own drawing. You can either change your onClientRender event priority to high or set DGS renderPriority to low using dgsSetRenderSetting. Both will ensure that your draw functions runs before DGS render event, which should make DGS elements render above it:
addEventHandler("onClientRender", root, drawFunction, false, "high")
addEventHandler:
By the way, is there any particular reason for not using dgsCreateImage? -
52 minutes ago, , Melvin said:
function cDamage(attacker, weapon, bodypart, loss)
if attacker and isElement(attacker) and getElementType(attacker) == "player" and source ~= attacker then
local sound = playSound("Dam.wav")
setSoundVolume(sound, 0.5)
end
endaddEventHandler("onClientPlayerDamage", getRootElement(), cDamage)
هذا الكود سيعمل على تشغيل صوت "Dam.wav" بصوت منخفض إذا تعرض لاعب لضرر من لاعب آخر باستخدام أي نوع من الأسلحة. يتم استدعاء الدالة
cDamage
عند حدوث ضرر على لاعب باستخدام الحدث "onClientPlayerDamage". إذا توافقت الشروط المحددة (المهاجم موجود، وهو لاعب، واللاعب ليس نفسه، وما إلى ذلك)، سيتم تشغيل الصوت المحلي بصوت منخفض.chatGPT ياليت تعرف للبرمجة قبل ما تساعد في هذا القسم، لأن جالس تلصق من
والإجابة مالها أي علاقة بالمشكلة
المشكلة في هذا السطر فقط10 hours ago, Avir14 said:source ~= attacker
تحتاج تتحقق إن الشخص يلي هجم == لاعب الكلاينت وتتحقق إن الشخص يلي تدمج مو الكلاينت نفسه
source ~= localPlayer and attacker == localPlayer -- نتحقق إن الشخص يلي تدمج هو مو الكلاينت نفسه، ونتحقق إن هو الشخص يلي دمج
10 hours ago, xjustiN said:addEventHandler ( "onClientPlayerDamage", localPlayer, cDamage )
كذا صار الحدث مختلف الان انت ربطت الحدث بلاعب الكلاينت، يعني اذا تدمج هو فقط راح يشتغل الحدث
root عكس اول كان مربوط بـ
.على العموم @Avir14 انا اشوف استعمال حدث جانب الكلاينت هنا خطأ، راح يشتغل لكن حل غير مناسب؛ لأن جانب الكلاينت ممكن يشوف الاعب تدمج عنده، لكن غير ثابت مثلا انت ملقلق
onPlayerDamage إذا استعملته فيه احتمالية كبيرة أحيانًا تدمج ويطلع الصوت وبالحقيقة الاعب ما تدمج. الحل المناسب؟ استخدم حدث جانب السيرفر
وترسل تريقر لجانب الكلاينت للقاتل باستخدام عشان تشغل الصوت
triggerClientEvent- 1
- 1
افكر ارجع للعبة 🤔
in القسم العام
Posted · Edited by xLive
اللعبة عددها مو مثل السابق أكيد، باقي فيه عدد لكن ما اشوفه يعتبر ميت وموجود عندك إحصائيات حديثة هنا
تفضيلات الناس تغيرت بشكل كبير، صار الأغلب يفضل لعب الأدوار"الحياة الواقعية" وهذا مو شيء في هذي اللعبة فقط؛ كل لعبة شبيهة لها مثل
FiveM, RageMP, AltV, Garry's Mod, وغيرهم
.الأخيرة حتى كانت فيها كثير ألعاب إبداعية وممتعة، لكن حاليًا الأغلبية سحبوا عليها وصار التركيز الأكثر على لعب الأدوار
(بدأ لمن انتشرت العاب الباتل رويال) PUBG لكن، فيه استثناءات أحيانًا لو كان الخادم فيه فكرة ممتعة، وجذابة للاعبين مثل يلي صار مع خوادم
وهذا مو يعني فيه أطوار اختفت نهائيًا وما صار فيه أحد يلعبها (مثل الهجولة، الديربي، التكتيك إلخ..)، باقي موجودين لكن عددها مو كثير
بداعي الفضول.. ودي أعرف الأشياء يلي ما قدرتوا تسووها؟
ما أختلف إن فيه حدود للأشياء يلي تسويها(مثل الـ 32 بت)، لكن نادر أشوف إن احد يحتاج زيادة
:وتقدر منها تسوي أشياء جدًا رهيبة مثل احد المشاريع الحديثة يلي تحت