ब्लॉग पर वापस
Guide10 मिनट पढ़ें

FiveM ट्रकिंग जॉब सिस्टम: लॉन्ग हॉल डिलीवरी स्क्रिप्ट्स

अपने FiveM सर्वर में एक उचित ट्रकिंग करियर जोड़ें। मार्ग, पेलोड, वेतन और QBCore और ESX अर्थव्यवस्थाओं के लिए सर्वश्रेष्ठ ट्रकिंग स्क्रिप्ट।

Agency Scripts

Agency Scripts के संस्थापक और प्रमुख डेवलपर

क्यों ट्रकिंग जॉब्स सर्वर अर्थव्यवस्था के लिए महत्वपूर्ण हैं

ट्रकिंग और डिलीवरी नौकरियां किसी भी FiveM रोलप्ले सर्वर की आर्थिक रीढ़ के रूप में काम करती हैं। ये नए खिलाड़ियों के लिए विश्वसनीय आय स्रोत प्रदान करती हैं जिनके पास अभी तक कनेक्शन नहीं हैं या विशेष कार्य नहीं मिला है, साथ ही नक्शे भर में व्यवसायों को जोड़ने वाली लॉजिस्टिक्स संरचना बनाती हैं। जब किसी रेस्टोरेंट को सामग्री चाहिए, कार डीलर को वाहन ले जाने होते हैं, या निर्माण स्थल को सामग्री चाहिए, तो ट्रकिंग आपूर्ति और मांग के बीच पुल बनाती है। एक अच्छी डिज़ाइन की गई ट्रकिंग प्रणाली एक सरल पॉइंट-ए से पॉइंट-बी की ग्राइंड को एक आकर्षक करियर पथ में बदल देती है जिसमें मार्ग योजना, कार्गो प्रबंधन, वाहन उन्नयन, और जोखिम-इनाम निर्णय शामिल हैं कि खतरनाक क्षेत्र से होकर लंबा लेकिन उच्च भुगतान वाला मार्ग लेना है या नहीं। ट्रकिंग नौकरी नक्शे को गतिविधि से भर देती है, राजमार्गों पर बड़े वाहन रखती है और पुलिस को ट्रैफिक उल्लंघनों के लिए निगरानी का अवसर देती है, जिससे ट्रकर्स और कानून प्रवर्तन के बीच प्राकृतिक रोलप्ले मुठभेड़ होती है।

रूट कॉन्फ़िगरेशन और कॉन्ट्रैक्ट सिस्टम

अपने ट्रकिंग सिस्टम को एक अनुबंध मॉडल के चारों ओर डिजाइन करें जहाँ ड्राइवर ट्रकिंग डिपो में डिस्पैच बोर्ड से नौकरियां उठाते हैं। प्रत्येक अनुबंध में पिकअप स्थान, डिलीवरी गंतव्य, कार्गो प्रकार, वजन, भुगतान दर, और समय सीमा निर्दिष्ट होती है। अनुबंधों को ड्राइवर के लाइसेंस वर्ग और अनुभव स्तर के आधार पर स्तरों में व्यवस्थित करें, ताकि नए ड्राइवर स्थानीय डिलीवरी बॉक्स ट्रकों के साथ शुरू करें जबकि अनुभवी वाहक क्रॉस-मैप ट्रेलर रन खतरनाक सामग्री के साथ लें। अनुबंध प्रणाली स्थिर मार्गों का उपयोग करने के बजाय पिकअप और डिलीवरी बिंदुओं के पूल से गतिशील रूप से मार्ग उत्पन्न करे, क्योंकि स्थिर मार्ग कुछ रन के बाद दोहरावदार हो जाते हैं:

Config.TruckingDepot = {
    location = vector3(152.29, -3210.88, 5.91),
    spawnPoint = vector4(162.45, -3207.12, 5.91, 270.0),
    returnPoint = vector3(148.77, -3215.44, 5.91),
}

Config.ContractTiers = {
    [1] = {
        label = 'Local Delivery',
        requiredLevel = 0,
        vehicle = 'mule',
        payRange = { 500, 1200 },
        timeLimit = 600,
        routes = {
            { pickup = vector3(89.54, -1745.62, 29.33),
              dropoff = vector3(-46.23, -1758.49, 29.42),
              cargo = 'electronics', weight = 500 },
            { pickup = vector3(821.77, -2160.33, 29.62),
              dropoff = vector3(-324.18, -1522.87, 27.56),
              cargo = 'food_supplies', weight = 350 },
            { pickup = vector3(-1088.34, -2002.19, 13.22),
              dropoff = vector3(1214.56, -1386.73, 35.37),
              cargo = 'clothing', weight = 200 },
        }
    },
    [2] = {
        label = 'Regional Haul',
        requiredLevel = 5,
        vehicle = 'packer',
        trailer = 'trailers',
        payRange = { 2000, 4500 },
        timeLimit = 900,
        routes = {
            { pickup = vector3(1378.22, -2078.85, 52.04),
              dropoff = vector3(-2556.14, 2334.67, 33.06),
              cargo = 'construction_materials', weight = 15000 },
            { pickup = vector3(-58.83, -2538.92, 6.07),
              dropoff = vector3(2671.84, 1678.93, 24.49),
              cargo = 'fuel_barrels', weight = 12000,
              hazardous = true },
        }
    },
    [3] = {
        label = 'Long Haul',
        requiredLevel = 15,
        vehicle = 'hauler',
        trailer = 'tanker',
        payRange = { 5000, 10000 },
        timeLimit = 1200,
        routes = {
            { pickup = vector3(2682.34, 1410.77, 24.52),
              dropoff = vector3(-1143.27, -2002.47, 13.18),
              cargo = 'refined_fuel', weight = 25000,
              hazardous = true, fragile = false },
        }
    },
}

Config.LevelXP = {
    perDelivery = 25,
    bonusOnTime = 15,
    bonusNoDamage = 20,
    penaltyLate = -10,
    penaltyCargoDamage = -15,
}

स्तर और XP प्रणाली प्रगति बनाती है जो ड्राइवरों को समय के साथ व्यस्त रखती है। प्रत्येक सफल डिलीवरी अनुभव अंक अर्जित करती है, समय पर पूर्णता और बिना नुकसान के कार्गो डिलीवरी के लिए बोनस के साथ। अनुभव प्रणाली उच्च-स्तरीय अनुबंधों को अनलॉक करती है जिनका वेतन बेहतर होता है लेकिन कठिनाई भी अधिक होती है, क्योंकि लंबे मार्ग अधिक खतरनाक क्षेत्रों से गुजरते हैं और बड़े वाहन तंग शहर की सड़कों में संभालना कठिन होते हैं।

वाहन और ट्रेलर प्रबंधन

ट्रकिंग वाहनों को सामान्य खिलाड़ी कारों की तुलना में विशेष हैंडलिंग की आवश्यकता होती है। जब ड्राइवर अनुबंध स्वीकार करता है, तो डिपो के स्पॉन पॉइंट पर उपयुक्त ट्रक स्पॉन करें और आवश्यक ट्रेलर संलग्न करें। उपयोग करें AttachVehicleToTrailer सही ट्रेलर भौतिकी के लिए और एक मैनुअल कपलिंग सिस्टम लागू करें जहां ड्राइवरों को अपने कैब को ट्रेलर के पास पीछे करना होता है और इसे हिच करने के लिए एक कुंजी दबानी होती है। यह मैनुअल प्रक्रिया कौशल-आधारित गेमप्ले जोड़ती है और जब ड्राइवर एक कठिन रिवर्स को एक तंग लोडिंग बे में सही करता है तो संतोषजनक क्षण बनाती है। ट्रेलर संलग्न स्थिति को सावधानीपूर्वक ट्रैक करें क्योंकि GTA की ट्रेलर भौतिकी टकराव के दौरान ट्रेलरों को अलग कर सकती है, और आपका स्क्रिप्ट इसे पता लगाकर ड्राइवर को सूचित करना चाहिए:

local activeTrailer = nil
local trailerAttached = false

function SpawnTruckWithTrailer(vehicleModel, trailerModel, spawnPoint)
    -- Spawn truck
    local truckHash = GetHashKey(vehicleModel)
    RequestModel(truckHash)
    while not HasModelLoaded(truckHash) do Wait(10) end

    local truck = CreateVehicle(truckHash, spawnPoint.x, spawnPoint.y,
        spawnPoint.z, spawnPoint.w, true, false)
    SetVehicleNumberPlateText(truck, 'HAUL' .. math.random(100, 999))
    SetEntityAsMissionEntity(truck, true, true)
    SetModelAsNoLongerNeeded(truckHash)

    -- Spawn trailer if needed
    if trailerModel then
        local trailerHash = GetHashKey(trailerModel)
        RequestModel(trailerHash)
        while not HasModelLoaded(trailerHash) do Wait(10) end

        local trailerSpawn = GetOffsetFromEntityInWorldCoords(truck, 0.0, -8.0, 0.0)
        activeTrailer = CreateVehicle(trailerHash, trailerSpawn.x,
            trailerSpawn.y, trailerSpawn.z, spawnPoint.w, true, false)
        SetEntityAsMissionEntity(activeTrailer, true, true)
        SetModelAsNoLongerNeeded(trailerHash)

        -- Auto-attach trailer
        AttachVehicleToTrailer(truck, activeTrailer, 1.0)
        trailerAttached = true
    end

    return truck
end

-- Monitor trailer attachment status
CreateThread(function()
    while activeTrailer do
        if trailerAttached then
            local truck = GetVehiclePedIsIn(PlayerPedId(), false)
            if truck ~= 0 and not IsVehicleAttachedToTrailer(truck) then
                trailerAttached = false
                lib.notify({
                    title = 'Trailer Detached!',
                    description = 'Your trailer has come loose! Re-attach it.',
                    type = 'error'
                })
                -- Add blip to trailer location
                local trailerCoords = GetEntityCoords(activeTrailer)
                local blip = AddBlipForEntity(activeTrailer)
                SetBlipSprite(blip, 479)
                SetBlipColour(blip, 1)
                BeginTextCommandSetBlipName('STRING')
                AddTextComponentSubstringPlayerName('Detached Trailer')
                EndTextCommandSetBlipName(blip)
            end
        end
        Wait(1000)
    end
end)

कार्गो डैमेज और कंडीशन ट्रैकिंग

कार्गो की स्थिति हर डिलीवरी में गेमप्ले की एक महत्वपूर्ण परत जोड़ती है। प्रभावों, उबड़-खाबड़ रास्तों पर गति, और ड्राइविंग व्यवहार के आधार पर कार्गो के स्वास्थ्य को ट्रैक करें। जब ट्रक वस्तुओं या अन्य वाहनों से टकराता है, तो वाहन की गति डेल्टा का उपयोग करके प्रभाव की गंभीरता की गणना करें और कार्गो को समानुपाती नुकसान लागू करें। इलेक्ट्रॉनिक्स या कांच जैसे नाजुक कार्गो को मामूली टक्कर से भारी नुकसान होता है, जबकि निर्माण स्टील जैसे मजबूत कार्गो को प्रभाव लगभग महसूस नहीं होते। ड्राइवरों को उनके ड्राइविंग के परिणाम वास्तविक समय में दिखाने के लिए HUD पर कार्गो स्वास्थ्य को प्रतिशत के रूप में प्रदर्शित करें। अंतिम भुगतान को कार्गो नुकसान के अनुपात में कम करें, और एक न्यूनतम सीमा निर्धारित करें जिसके नीचे डिलीवरी पूरी तरह विफल हो जाती है क्योंकि कार्गो नष्ट हो गया है। यह मैकेनिक स्वाभाविक रूप से सावधानीपूर्वक ड्राइविंग को प्रोत्साहित करता है बिना गति को कृत्रिम रूप से सीमित किए, जिससे ड्राइवर तेज़ चलाने और समय सीमा पूरी करने के बीच जोखिम-इनाम गणना खुद कर सकते हैं।

GPS नेविगेशन और रूट डिस्प्ले

ट्रक चालकों को एक विशेष GPS सिस्टम प्रदान करें जो वाहन के आकार को ध्यान में रखते हुए मार्गों की गणना करता है। मानक GTA वेपॉइंट्स खिलाड़ियों को संकरी गली और कम पुलों के नीचे भेजते हैं जहाँ ट्रेलर रिग नेविगेट नहीं कर सकता। डिफ़ॉल्ट नेविगेशन को कस्टम रूट मार्कर्स से ओवरराइड करें जो ट्रक-फ्रेंडली सड़कों का पालन करते हैं, तंग मोड़ों से बचते हैं, और ड्राइवरों को आगामी बाधाओं के बारे में चेतावनी देते हैं। मिनीमैप पर चेकपॉइंट ब्लिप्स की एक श्रृंखला के रूप में मार्ग दिखाएं जिसमें अगले तक की दूरी संकेतक हों, और वर्तमान गति के आधार पर अनुमानित आगमन समय दिखाएं। दूरी और वाहन के वजन से जुड़ा ईंधन खपत मैकेनिक जोड़ें ताकि ड्राइवरों को लंबी यात्राओं पर ईंधन स्टॉप की योजना बनानी पड़े, जिससे यात्रा में अतिरिक्त निर्णय बिंदु बनें:

function CreateTruckRoute(pickupCoords, dropoffCoords)
    -- Clear previous route
    ClearGpsMultiRoute()

    -- Set up checkpoint blips along the route
    local checkpoints = CalculateTruckFriendlyRoute(pickupCoords, dropoffCoords)

    for i, checkpoint in ipairs(checkpoints) do
        local blip = AddBlipForCoord(checkpoint.x, checkpoint.y, checkpoint.z)
        SetBlipSprite(blip, 1)
        SetBlipScale(blip, 0.6)
        SetBlipColour(blip, i == #checkpoints and 5 or 3)
        SetBlipAsShortRange(blip, true)
        table.insert(routeBlips, blip)
    end

    -- Set final destination waypoint
    SetNewWaypoint(dropoffCoords.x, dropoffCoords.y)

    -- Start GPS multi-route display
    StartGpsMultiRoute(6, true, true)
    for _, cp in ipairs(checkpoints) do
        AddPointToGpsMultiRoute(cp.x, cp.y, cp.z)
    end
    SetGpsMultiRouteRender(true)
end

वजन स्टेशन और निरीक्षण

मुख्य राजमार्ग मार्गों के साथ वजन स्टेशन जोड़ें जहाँ ट्रक चालकों को रुकना होता है और उनके कार्गो का निरीक्षण करना होता है। यह मैकेनिक लंबी दूरी की यात्राओं पर प्राकृतिक इंटरैक्शन पॉइंट बनाता है और ट्रक चालकों और DOT निरीक्षकों के बीच रोलप्ले के अवसर खोलता है, जो या तो NPC-चालित हो सकते हैं या परिवहन प्राधिकरण नौकरी वाले खिलाड़ियों द्वारा स्टाफ किए जा सकते हैं। एक वजन स्टेशन पर, ट्रक के कुल वजन की कानूनी सीमाओं के खिलाफ जांच करें, कार्गो मैनिफेस्ट की पुष्टि करें कि वह लोड किए गए सामान से मेल खाता है, और वाहन की स्थिति का निरीक्षण करें। अधिक वजन वाले ट्रकों को जुर्माना मिलता है जो डिलीवरी के लाभ में कटौती करता है, ड्राइवरों को कानूनी सीमाओं के भीतर रहने के लिए प्रोत्साहित करता है। यदि आपके सर्वर में पुलिस बल है, तो अधिकारियों को सड़क किनारे निरीक्षण करने की क्षमता दें जिसमें समान जांच शामिल हों, जिससे जैविक कानून प्रवर्तन मुठभेड़ होती हैं जो अपराध पर निर्भर नहीं करतीं। वजन स्टेशन अनुपालन एक और यथार्थवाद की परत जोड़ता है जिसे समर्पित ट्रकिंग खिलाड़ी वास्तव में पसंद करते हैं क्योंकि यह उनकी भूमिका के प्रति प्रतिबद्धता को मान्यता देता है।

मल्टीप्लेयर काफिला सिस्टम

कई ट्रक चालकों को समूह डिलीवरी के लिए काफिले बनाने की अनुमति दें जो प्रत्येक भाग लेने वाले चालक को बोनस भुगतान करते हैं। काफिला नेता एक विशेष मल्टी-ट्रक अनुबंध स्वीकार करता है जो एक ही गंतव्य क्षेत्र के लिए जुड़े हुए डिलीवरी उत्पन्न करता है। काफिला सदस्य समन्वय के लिए एक रेडियो चैनल साझा करते हैं, मिनीमैप पर एक-दूसरे की स्थिति विशेष काफिला मार्करों के साथ देखते हैं, और एक-दूसरे के पास उचित दूरी पर ड्राइव करते समय निकटता बोनस प्राप्त करते हैं। यह सामाजिक गेमप्ले को प्रोत्साहित करता है और जब ट्रकों की एक लाइन एक साथ राजमार्ग पर चलती है तो प्रभावशाली दृश्य क्षण बनाता है। एक काफिला गठन संकेतक लागू करें जो प्रत्येक सदस्य की लाइन में स्थिति दिखाता है और किसी भी व्यक्ति को हाइलाइट करता है जो पीछे रह जाता है या गलत मोड़ लेता है। काफिला बोनस इतना महत्वपूर्ण होना चाहिए कि समूह बनाने के लिए प्रोत्साहित करे, आमतौर पर सोलो रन की तुलना में बीस से तीस प्रतिशत अधिक, जिससे अन्य चालकों के इंतजार के बजाय तुरंत अकेले प्रस्थान करने की बजाय समूह बनाना लाभकारी हो।

प्रदर्शन और एंटी-एक्सप्लॉइट उपाय

ट्रकिंग सिस्टम बड़े वाहन स्पॉन करते हैं जिनकी रेंडरिंग लागत अधिक होती है, इसलिए उनके जीवनचक्र का सावधानीपूर्वक प्रबंधन करें। डिलीवरी पूरी होने या असफल होने पर ट्रक और ट्रेलर को तुरंत हटा दें, नक्शे पर न छोड़ें। यदि ड्राइवर डिलीवरी के बीच डिस्कनेक्ट हो जाता है, तो सर्वर साइड पर स्पॉन किए गए वाहनों को साफ करें और अनुबंध को परित्यक्त के रूप में चिह्नित करें। टेलीपोर्टेशन एक्सप्लॉइट को रोकने के लिए ट्रक की स्थिति नियमित अंतराल पर ट्रैक करें और सुनिश्चित करें कि यह पिकअप से ड्रॉपऑफ तक एक संभावित मार्ग का पालन करता है, उन डिलीवरी को फ्लैग करें जहाँ वाहन जांचों के बीच असंभव दूरी तय करता है। उच्च भुगतान वाले मार्गों को चुनने के लिए खिलाड़ियों द्वारा अनुबंध तेजी से स्वीकार करने और रद्द करने से रोकने के लिए अनुबंध स्वीकृति की दर-सीमा लागू करें। लीडरबोर्ड और उपलब्धियों के लिए प्रति खिलाड़ी डिलीवरी आँकड़े स्टोर करें, लेकिन पीक घंटों में डेटाबेस लोड कम करने के लिए हर चेकपॉइंट के बाद लिखने के बजाय टाइमर पर बैच डेटाबेस लेखन करें जब कई ड्राइवर एक साथ सक्रिय हों।

शुरू करने के लिए तैयार?

हमारी शॉप से स्क्रिप्ट लें, या सपोर्ट, अपडेट और आगे आने वाली चीज़ों की झलक के लिए Discord से जुड़ें।