العودة إلى المدونة
Guide7 دقيقة قراءة

سكريبتات الصيد وصيد الأسماك في FiveM: أفضل الموارد

اختر سكربتات الصيد والصيد المناسبة لخادم FiveM الخاص بك. مقارنة الميزات، دعم الأُطُر، ونصائح لبناء اقتصاد خارجي حي.

Agency Scripts

المؤسس والمطور الرئيسي في Agency Scripts

آليات الصيد الأساسية

يوفر نظام الصيد واحدة من أكثر الأنشطة الجانبية استرخاءً ومكافأة على خادم رول بلاي. تتضمن الحلقة الأساسية تجهيز صنارة الصيد، الاقتراب من جسم مائي صالح، إلقاء الخط، الانتظار للعضة، وإكمال لعبة صيد مصغرة. ابدأ بتحديد مناطق الصيد كمناطق مضلعة أو دوائر تعتمد على نصف القطر تغطي البحيرات، الأنهار، ساحل المحيط، والأرصفة. يجب أن تحتوي كل منطقة على جدول تعداد الأسماك الخاص بها بأنواع تنتمي منطقيًا إلى ذلك البيئة: أنواع المياه العذبة مثل الباس والتروت في البحيرات، وأنواع المياه المالحة مثل التونة والقرش في البحر المفتوح، وأنواع الأنهار مثل السلمون بالقرب من المياه الجارية. عند إلقاء اللاعب لخطه، ابدأ مؤقتًا عشوائيًا بين وقت انتظار أدنى وأقصى، يتأثر بالطُعم المستخدم، وقت اليوم، ظروف الطقس، ومستوى مهارة الصيد لدى اللاعب. تقلل المهارة الأعلى وقت الانتظار وتزيد فرصة صيد الأنواع النادرة. يجب أن تستخدم حركة الإلقاء TaskStartScenarioInPlace مع سيناريو صيد الأسماك لجعل شخصية اللاعب تمسك بعصا وتقف على حافة الماء بصريًا.

لعبة الصيد

اللعبة الصغيرة هي ما يميز نظام صيد جذاب عن سكربت ممل AFK. صمم لعبة مهارة تظهر كطبقة NUI عند عض السمكة. نهج شائع هو آلية الشريط المتحرك حيث يتأرجح مؤشر ذهابًا وإيابًا عبر مقياس ويجب على اللاعب الضغط على مفتاح عندما يكون المؤشر داخل منطقة الهدف المميزة. يتناسب حجم منطقة الهدف مع تصنيف صعوبة السمكة، حيث تقدم الأنواع الشائعة نافذة سخية وتتطلب الأسماك الأسطورية توقيتًا دقيقًا. أضف جولات متعددة لمحاولة صيد واحدة، حيث كل ضغطة مفتاح ناجحة تقرب السمكة وكل خطأ يسمح لها بالسباحة بعيدًا. نفذ مقياس توتر يتصاعد مع سحب اللاعب وينخفض عند ترك الخط يستريح، مع انقطاع الخط إذا تجاوز التوتر الحد الأقصى للسنارة. يجب أن تحتوي مستويات السنارات المختلفة على حدود توتر أعلى، مما يمنح اللاعبين سببًا لترقية معداتهم مع تقدمهم في شجرة مهارات الصيد.

-- Fish loot table configuration
Config.FishingZones = {
    ['alamo_sea'] = {
        label = 'Alamo Sea',
        center = vector3(482.12, 3614.89, 33.17),
        radius = 200.0,
        fishTable = {
            { item = 'fish_bass',       label = 'Largemouth Bass',  weight = {1.5, 4.2},  chance = 35, difficulty = 1, price = 45 },
            { item = 'fish_catfish',    label = 'Channel Catfish',  weight = {2.0, 8.5},  chance = 25, difficulty = 2, price = 65 },
            { item = 'fish_bluegill',   label = 'Bluegill',         weight = {0.3, 1.2},  chance = 30, difficulty = 1, price = 20 },
            { item = 'fish_golden',     label = 'Golden Trout',     weight = {1.0, 3.0},  chance = 8,  difficulty = 4, price = 250 },
            { item = 'item_boot',       label = 'Old Boot',         weight = {0.5, 0.5},  chance = 2,  difficulty = 1, price = 0 },
        },
        requiredBait = { 'bait_worm', 'bait_minnow', 'bait_lure' },
    },
}

مناطق الصيد وظهور الحيوانات

الصيد يتطلب نهجًا أكثر ديناميكية من الصيد بالأسماك لأن الحيوانات كيانات مرئية ومتحركة يجب على اللاعبين تتبعها والتسلل إليها وإطلاق النار عليها. حدد مناطق الصيد في المناطق البرية مثل غابات مقاطعة بلاين، سفوح جبل تشيلياد، والمناطق الصحراوية حول ساندي شورز. داخل كل منطقة، قم بإنشاء حيوانات باستخدام نماذج الحيوانات الأصلية في GTA بفواصل زمنية محكومة. استخدم CreatePed مع هاشات نماذج الحيوانات ومنحهم مهام تجوال باستخدام TaskWanderStandard حتى تتجول بشكل طبيعي ضمن حدود المنطقة. التحكم في كثافة الظهور بعناية لمنع مشاكل الأداء: تحديد كل منطقة بـ 5-8 حيوانات نشطة في وقت واحد لكل لاعب، ولا تظهر الحيوانات إلا عندما يكون لاعب يحمل رخصة صيد أو سلاح ضمن مسافة معقولة من المنطقة. إزالة الحيوانات بشكل نظيف عندما لا يكون هناك صيادون قريبون لتحرير فتحات الكيانات. تجميع الحيوانات في قطعان لأنواع مثل الغزلان، حيث يؤدي إطلاق النار على واحد إلى فرار البقية باستخدام TaskSmartFleePed، إنشاء تجربة صيد واقعية تكافئ التسلل الصبور بدلاً من الجري وإطلاق النار.

جداول الغنائم والحصاد

عندما يقتل اللاعب حيواناً بنجاح، لا يجب أن يحصل ببساطة على العناصر فوراً. نفذ آلية حصاد حيث يركع اللاعب بجانب جثة الحيوان ويؤدي رسوم تقطيع تستغرق عدة ثوانٍ، يكون خلالها عرضة للخطر. تعتمد الغنائم المسقطة على نوع الحيوان، السلاح المستخدم، ومكان الإصابة. طلقة نظيفة في الرأس ببندقية تعطي لحماً سليماً وفراءً نقيّاً، بينما رش الحيوان بسلاح آلي يضر بالفراء ويدمر بعض اللحم. تتبع مكان الإصابة بمقارنة موقع الضرر بموقع عظمة رأس الحيوان. يجب أن يسقط كل حيوان مزيجاً من اللحم النيء، فراء أو جلد، وعناصر ثانوية مثل القرون، الريش، أو الدهون حسب النوع. استخدم بيانات وصفية للعناصر لتخزين درجة الجودة لكل عنصر محصود، مما يؤثر على سعر البيع وجودة السلع المصنعة عند معالجتها بواسطة عامل جلود أو طباخ.

-- Server-side harvesting logic
RegisterNetEvent('hunting:harvest')
AddEventHandler('hunting:harvest', function(netId, weaponHash, boneHit)
    local src = source
    local entity = NetworkGetEntityFromNetworkId(netId)
    if not DoesEntityExist(entity) then return end

    local model = GetEntityModel(entity)
    local animalData = Config.Animals[model]
    if not animalData then return end

    -- Determine quality based on weapon and hit location
    local quality = 'poor'
    if boneHit == 'head' then
        if IsCleanWeapon(weaponHash) then
            quality = 'pristine'
        else
            quality = 'good'
        end
    elseif IsCleanWeapon(weaponHash) then
        quality = 'good'
    end

    local priceMultiplier = Config.QualityMultipliers[quality] -- pristine=1.5, good=1.0, poor=0.5

    -- Give loot items
    for _, loot in ipairs(animalData.lootTable) do
        if math.random(100) <= loot.chance then
            local count = math.random(loot.min, loot.max)
            exports.ox_inventory:AddItem(src, loot.item, count, {
                quality = quality,
                animal = animalData.label,
                weight = math.random(loot.weightMin * 10, loot.weightMax * 10) / 10,
            })
        end
    end

    -- Delete carcass after harvesting
    DeleteEntity(entity)
    TriggerClientEvent('hunting:harvested', src)
end)

نظام تقدم المهارات

يحافظ نظام التقدم على جاذبية الصيد والصيد على المدى الطويل من خلال مكافأة اللاعبين المكرسين بتحسينات ملموسة. تتبع مستويات مهارة منفصلة للصيد والصيد البري، كل منها يزيد من خلال الصيد الناجح أو القتل. مع زيادة مهارة الصيد، يقصر مؤقت العض، وتصبح الأسماك النادرة أكثر شيوعاً في جدول الغنائم، وتكبر منطقة الهدف في اللعبة المصغرة قليلاً، ويفتح اللاعب الوصول إلى مواقع صيد مميزة محجوزة خلف عتبات المهارة. بالنسبة للصيد البري، تسمح المستويات الأعلى للاعب برؤية آثار الحيوانات كعلامات أرضية دقيقة، زيادة نطاق الكشف عن الحيوانات، تقليل دائرة الضوضاء عند التحرك عبر الأدغال، وفتح القدرة على استخدام النداءات والروائح التي تجذب أنواعاً محددة إلى موقع الصياد. خزّن خبرة المهارة في قاعدة بياناتك واحسب المستوى باستخدام صيغة تصاعدية حيث يتطلب كل مستوى تالي خبرة أكثر من السابق، مما يمنع اللاعبين من الوصول إلى الحد الأقصى بسرعة كبيرة مع توفير تقدم ثابت يشعر بالمكافأة خلال كل جلسة لعب.

المعدات والترقيات

توفر مستويات المعدات للاعبين أهدافًا قصيرة المدى ونقاط إنفاق ذات معنى ضمن اقتصاد الصيد والصيد البري. بالنسبة للصيد، قدم تقدمًا من صنارات خشبية أساسية لا تصطاد سوى الأسماك الشائعة، إلى صنارات من الألياف الزجاجية مع تحكم أفضل في التوتر، إلى صنارات من ألياف الكربون التي تقلل صعوبة الصيد وتزيد فرص الأسماك النادرة. اقترن الصنارات بالبكرات التي تؤثر على سرعة استرجاع الخيط أثناء اللعبة المصغرة. يجب أن تؤثر أنواع الطُعم مباشرة على أنواع الأسماك التي يمكن صيدها: ديدان للمياه العذبة العامة، سمك صغير للأسماك المفترسة، طُعم متخصص للأنواع النادرة، وطُعم مميز يضاعف معدل العض. بالنسبة للصيد البري، قدم مزايا خاصة بالأسلحة حيث يكون القوس المركب صامتًا لكنه يتطلب مدى أقرب، والبندقية ذات الزناد المثبت مثالية للقتل النظيف عن بعد، والبندقية القصيرة فعالة للطيور لكنها تضر بالفراء على الحيوانات الأكبر. أضف ملحقات الصيد مثل المناظير لمدى رؤية ممتد، وبدلات الغيلي التي تقلل من نصف قطر اكتشاف اللاعب من قبل الحيوانات، وسكين الصيد الذي يسرع من حركة الحصاد. بيع كل المعدات من خلال NPC متجر الطُعم بالقرب من مواقع الصيد وNPC مزود معدات الصيد في المناطق الريفية، مما يخلق نقاط تجمع طبيعية حيث يمكن لهواة الهواء الطلق اللقاء وتبادل النصائح.

البيع والاقتصاد الخارجي

اربط الصيد والصيد البري بالاقتصاد الأوسع لسيرفرك من خلال توفير منافذ متعددة لبيع السلع المحصودة. يجب أن يشتري NPC سوق السمك جميع الأسماك بالأسعار الأساسية، مع أسعار مميزة للعينات النادرة والثقيلة. يشتري NPC الجزار اللحوم النيئة وجلود الحيوانات. بالإضافة إلى مبيعات NPC، فعّل التداول بين اللاعبين بحيث يمكن لصياد ماهر تزويد صاحب مطعم بالأسماك الطازجة، أو يمكن للصياد بيع جلود نقية لصانع الجلود الذي يحولها إلى ملابس أو أثاث. نفذ نظام طلب يومي حيث تكون بعض أنواع الأسماك أو اللحوم ذات قيمة أعلى في أيام معينة، مما يشجع اللاعبين على تنويع أنشطتهم بدلاً من تكرار صيد نفس الأنواع المربحة. أضف لوحة جوائز في مواقع الصيد والصيد البري تعرض أكبر الأسماك التي تم صيدها وأندر الحيوانات التي تم اصطيادها كل أسبوع، مع حصول أصحاب الأرقام القياسية على مكافآت نقدية أو جوائز تجميلية حصرية. فكر في أحداث موسمية مثل بطولات الصيد أو مسابقات الصيد التي تجمع المجتمع حول هذه الأنشطة الخارجية.

الأداء وتحسين الظهور

تتطلب الأنظمة الخارجية التي تنشئ الكيانات تحسينًا دقيقًا لتجنب تدهور أداء الخادم. بالنسبة لإنشاء الحيوانات، استخدم نظامًا قائمًا على القرب ينشئ حيوانات فقط عندما يكون صياد ضمن نطاق قابل للتكوين، عادة 150-200 متر. نفذ ميزانية كيان عالمية تحد من العدد الإجمالي للحيوانات الصيادة عبر الخادم بأكمله، موزعة الميزانية عبر المناطق النشطة بناءً على عدد الصيادين. استخدم تجمعات الكيانات التي تعيد تدوير الحيوانات التي تم إزالتها بدلاً من إنشاء جديدة، مما يقلل من العبء الناتج عن التكرار CreatePed المكالمات. بالنسبة للصيد، تجنب إنشاء كيانات الأسماك المرئية تمامًا لأنها لا تخدم غرضًا في اللعب وتستهلك مواقع الكيانات. بدلاً من ذلك، استخدم تأثيرات الجسيمات أو تحريكات سطح الماء الدقيقة للدلالة على وجود سمكة على الخط. خزّن تكوينات المناطق في الذاكرة المشتركة بدلاً من قراءتها من قاعدة البيانات في كل تفاعل. بالنسبة للنظامين، قم بكتابة قواعد البيانات دفعة واحدة عن طريق تجميع مكاسب XP، الصيد، والقتل في الذاكرة وتفريغها إلى قاعدة البيانات كل 30-60 ثانية بدلاً من كل حدث فردي. هذا يقلل بشكل كبير من حجم استعلامات قاعدة البيانات خلال ساعات الذروة عندما يصطاد أو يصطاد العديد من اللاعبين في نفس الوقت.

جاهز للبدء؟

احصل على السكربتات من متجرنا، أو انضم إلى Discord للدعم والتحديثات ونظرة على ما هو قادم.