FiveM Balıkçılık ve Avcılık Scriptleri: En İyi Kaynaklar
FiveM sunucunuz için doğru balıkçılık ve avcılık scriptlerini seçin. Özellik karşılaştırmaları, framework desteği ve canlı bir açık hava ekonomisi inşa etmek için ipuçları.
Agency Scripts
Agency Scripts Kurucusu ve Baş Geliştiricisi
Temel Balıkçılık Mekanikleri
Bir balıkçılık sistemi, roleplay sunucusundaki en dinlendirici ve ödüllendirici yan aktivitelerden birini sağlar. Temel döngü; bir olta kuşanmayı, geçerli bir su kütlesine yaklaşmayı, oltayı atmayı, vuruş beklemesini ve yakalama mini oyununu tamamlamayı içerir. Gölleri, nehirleri, okyanus kıyı şeridini ve iskeleleri kapsayan çokgen alanlar veya yarıçap tabanlı daireler olarak balıkçılık bölgeleri tanımlayarak başlayın. Her bölgenin, mantıksal olarak o ortama ait türleri içeren kendi balık popülasyon tablosu olmalıdır: Göllerde levrek ve alabalık gibi tatlı su türleri, açık denizde ton balığı ve köpekbalığı gibi tuzlu su türleri ve akan suların yakınında somon gibi nehre özgü balıklar. Oyuncu oltasını attığında, kullanılan yemden, günün saatinden, hava koşullarından ve oyuncunun balıkçılık yetenek seviyesinden etkilenen minimum ve maksimum bekleme süresi arasında rastgele bir zamanlayıcı başlatın. Daha yüksek yetenek bekleme süresini azaltır ve nadir türleri yakalama şansını artırır. Oltayı atma animasyonu şunu kullanmalıdır: TaskStartScenarioInPlace oyuncu karakterinin görsel olarak olta tutmasını ve su kenarında durmasını sağlamak için bir balık tutma senaryosu ile.
Yakalama Mini Oyunu
Sürükleyici bir balıkçılık sistemini sıkıcı bir AFK scriptinden ayıran unsur mini oyundur. Balık vurduğunda NUI katmanı olarak beliren, yeteneğe dayalı bir mini oyun tasarlayın. Popüler bir yaklaşım, bir gösterge üzerinde ibrenin ileri geri hareket ettiği ve oyuncunun ibre vurgulanan hedef bölgedeyken bir tuşa basması gerektiği hareketli çubuk mekaniğidir. Hedef alanın boyutu balığın zorluk derecesine göre ölçeklenir; yaygın türler geniş bir aralık sunarken efsanevi balıklar hassas zamanlama gerektirir. Tek bir yakalama denemesine birden fazla tur ekleyin: her başarılı tuş basımı balığı yaklaştırırken, kaçırma balığın uzaklaşmasına neden olur. Oyuncu misinayı sardıkça dolan ve misinayı dinlendirdiğinde azalan bir gerginlik göstergesi uygulayın; gerginlik oltanın maksimum sınırını aşarsa misina kopmalıdır. Farklı olta seviyeleri daha yüksek gerginlik eşiklerine sahip olmalıdır, böylece oyuncular balıkçılık yetenek ağacında ilerledikçe ekipmanlarını yükseltmek için bir nedene sahip olur.
-- 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' },
},
}
Avlanma Bölgeleri ve Hayvan Spawnı
Avlanma, balıkçılığa kıyasla daha dinamik bir yaklaşım gerektirir; çünkü hayvanlar oyuncuların izini sürmesi, sinsice yaklaşması ve vurması gereken görünür, hareketli varlıklardır. Blaine County ormanları, Mount Chiliad etekleri ve Sandy Shores etrafındaki çöl bölgeleri gibi vahşi alanlarda avlanma bölgeleri tanımlayın. Her bölge içinde, GTA'nın yerel hayvan modellerini kullanarak kontrollü aralıklarla hayvan pedleri spawn edin. Kullanın CreatePed hayvan modeli hashleri ile ve şunları kullanarak onlara dolaşma görevleri verin: TaskWanderStandard böylece bölge sınırları içinde doğal şekilde dolaşırlar. Performans sorunlarını önlemek için spawn yoğunluğunu dikkatlice kontrol edin: her bölgeyi oyuncu başına aynı anda 5-8 aktif hayvanla sınırlayın ve hayvanları yalnızca avlanma lisansı veya silahı olan bir oyuncu bölgeye makul bir mesafedeyse spawn edin. Entity slotlarını serbest bırakmak için yakınlarda avcı olmadığında hayvanları sorunsuz şekilde despawn edin. Geyik gibi türler için hayvanları sürüler halinde gruplayın; burada birini vurmak, diğerlerinin şu yöntemle kaçmasına neden olur: TaskSmartFleePed, koşup ateş etmek yerine sabırla iz sürmeyi ödüllendiren gerçekçi bir avcılık deneyimi yaratır.
Ganimet Tabloları ve Toplama
Bir oyuncu bir hayvanı başarıyla avladığında, eşyaları doğrudan anında almamalıdır. Oyuncunun hayvan leşinin yanında diz çöktüğü ve savunmasız kaldığı birkaç saniyelik bir yüzme animasyonu gerçekleştirdiği bir toplama mekaniği uygulayın. Düşen ganimet hayvan türüne, kullanılan silaha ve vuruş noktasına bağlıdır. Bir tüfekle yapılan temiz bir kafa vuruşu daha fazla sağlam et ve kusursuz bir kürk kazandırırken, hayvana otomatik bir silahla rastgele ateş etmek kürke zarar verir ve etin bir kısmını yok eder. Vuruş noktasını, öldürücü hasar konumunu hayvanın kafa kemiği koordinatlarıyla karşılaştırarak takip edin. Her hayvan türüne bağlı olarak çiğ et, kürk veya deri ile boynuz, tüy ya da yağ gibi ikincil eşyaların bir kombinasyonunu düşürmelidir. Hasat edilen her eşyanın kalite derecesini saklamak için eşya meta verilerini kullanın, bu durum satış fiyatını ve bir deri ustası veya aşçı tarafından işlendiğinde üretilen malların kalitesini etkiler.
-- 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)
Yetenek Gelişim Sistemi
Bir ilerleme sistemi, özverili oyuncuları somut gelişmelerle ödüllendirerek balıkçılık ve avcılığı uzun vadede ilgi çekici kılar. Her biri başarılı avlanmalar veya yakalamalar yoluyla artan balıkçılık ve avcılık için ayrı beceri seviyelerini takip edin. Balıkçılık becerisi arttıkça ısırma süresi kısalır, nadir balıklar ganimet tablosunda daha yaygın hale gelir, minioyun hedef alanı biraz genişler ve oyuncu beceri eşikleriyle sınırlandırılmış premium balıkçılık noktalarına erişim kilidini açar. Avcılıkta ise daha yüksek beceri seviyeleri oyuncunun hayvan izlerini zeminde beliren hafif işaretler olarak görmesini sağlar, hayvanları tespit etme menzilini artırır, çalılıklar arasında hareket ederken gürültü yarıçapını azaltır ve belirli türleri avcının bulunduğu yere çeken çağrı ve kokuları kullanma yeteneğinin kilidini açar. Beceri XP'sini veritabanınızda saklayın ve birbirini izleyen her seviyenin bir öncekinden daha fazla XP gerektirdiği ölçeklendirme formülü kullanarak seviyeyi hesaplayın; böylece oyuncuların çok hızlı seviye atlamasını engellerken her oyun oturumunda tatmin edici hissettiren düzenli bir ilerleme sunun.
Ekipman ve Yükseltmeler
Ekipman kademeleri, balıkçılık ve avcılık ekonomisi içinde oyunculara kısa vadeli hedefler ve anlamlı harcama amaçları sunar. Balıkçılık için, yalnızca yaygın balıkları yakalayabilen temel ahşap oltalardan, daha iyi gerilim yönetimine sahip fiberglas oltalara ve yakalama zorluğunu azaltıp nadir balık şansını artıran karbon fiber oltalara uzanan bir ilerleme sunun. Oltaları, mini oyun sırasında oyuncunun misinayı ne kadar hızlı sarabileceğini etkileyen makaralarla eşleştirin. Yem türleri hangi balık türlerinin yakalanabileceğini doğrudan etkilemelidir: genel tatlı su için solucanlar, yırtıcı balıklar için küçük yemlik balıklar, nadir türler için özel sahte yemler ve ısırma oranını ikiye katlayan premium yem. Avcılık için, makaralı yayın sessiz olduğu ancak daha yakın mesafe gerektirdiği, kurmalı tüfeğin uzaktan temiz vuruşlar için ideal olduğu ve pompalı tüfeğin kuşlar için etkili olduğu ancak daha büyük hayvanların postlarına zarar verdiği silaha özel avantajlar sunun. Uzak mesafeden tespit için dürbün, oyuncunun hayvanlar tarafından fark edilme yarıçapını azaltan kamuflaj giysisi (ghillie suit) ve toplama animasyonunu hızlandıran bir av bıçağı gibi av aksesuarları ekleyin. Tüm ekipmanları balıkçılık noktalarının yakınındaki bir yem dükkanı NPC'si ve kırsal alanlardaki bir av malzemeleri satıcısı aracılığıyla satarak doğa tutkunlarının buluşup ipuçları paylaşabileceği doğal toplanma alanları oluşturun.
Avlananları Satma ve Açık Hava Ekonomisi
Elde edilen ürünleri satmak için birden fazla satış noktası sunarak balıkçılık ve avcılığı sunucunuzun genel ekonomisine bağlayın. Bir balık pazarı NPC'si tüm balıkları taban fiyatlardan satın almalı, nadir ve ağır örnekler ise yüksek fiyatlara satılmalıdır. Bir kasap NPC'si çiğ et ve hayvan derileri satın alır. NPC satışlarının ötesinde, yetenekli bir balıkçının bir restoran sahibine taze balık tedarik edebilmesi veya bir avcının kusursuz kürkleri bunları giysi ya da mobilya eşyalarına dönüştüren bir deri zanaatkarına satabilmesi için oyuncudan oyuncuya ticareti etkinleştirin. Belirli balık veya et türlerinin belirli günlerde daha değerli olduğu bir günlük talep sistemi uygulayarak oyuncuları sürekli aynı kazançlı türleri kasmak yerine aktivitelerini çeşitlendirmeye teşvik edin. Balıkçılık ve avcılık konumlarına her hafta yakalanan en büyük balıkları ve avlanan en nadir hayvanları gösteren bir kupa panosu ekleyin, rekor sahipleri bonus nakit veya özel kozmetik ödüller kazansın. Topluluğu bu açık hava aktiviteleri etrafında bir araya getiren balıkçılık turnuvaları veya avcılık yarışmaları gibi sezonluk etkinlikleri değerlendirin.
Performans ve Spawn Optimizasyonu
Varlık oluşturan açık alan sistemleri, sunucu performansını düşürmemek adına dikkatli bir optimizasyon gerektirir. Hayvan oluşturma için, yalnızca bir avcı yapılandırılabilir bir mesafe (genellikle 150-200 metre) içindeyken hayvan ped'leri oluşturan yakınlık tabanlı bir sistem kullanın. Avcı sayısına göre bütçeyi aktif bölgelere dağıtarak tüm sunucudaki toplam av hayvanı sayısını sınırlayan genel bir varlık bütçesi uygulayın. Yeni hayvanlar oluşturmak yerine kaybolan hayvanları geri dönüştüren varlık havuzları kullanarak tekrarlanan yükü azaltın CreatePed çağrıları. Balıkçılık için görünür balık entity'leri oluşturmaktan tamamen kaçının, çünkü hiçbir oynanış amacına hizmet etmezler ve entity slot'larını boşa harcarlar. Bunun yerine oltaya balık takıldığını belirtmek için partikül efektleri veya hafif su yüzeyi animasyonları kullanın. Bölge yapılandırmalarını her etkileşimde veritabanından okumak yerine paylaşılan bellekte önbelleğe alın. Her iki sistem için de XP kazanımlarını, yakalananları ve avlananları bellekte toplayıp her münferit olay yerine 30 ila 60 saniyede bir veritabanına yazarak veritabanı yazma işlemlerini toplu hale getirin. Bu, birçok oyuncunun aynı anda balık tuttuğu veya avlandığı yoğun saatlerde veritabanı sorgu hacmini önemli ölçüde azaltır.