Turf System
- Resource
fh_zones- Version
- 1.0.0
- Framework
- ESX
Turf System deler byen op i bydele, som bander kæmper om. Salg, tags og kup giver indflydelse, og heat afgør, hvor risikabelt det er at handle. Banderne følger det hele i appen Heat på tablettens skjulte side.
Installation
Installer Tablet System og Gang System først, og start scriptet efter dem:
ensure fh_tablet
ensure fh_gangs
ensure fh_zonesTabellerne oprettes automatisk.
Vigtigt
Turf System får først aktivitet, når dine andre scripts melder den. Se Forbind dine scripts.
Sådan virker det
- Indflydelse: Hver bydel har 100 %. En bande med over 50 % kontrollerer bydelen.
- Forfald: Bydele uden aktivitet glider langsomt fra banden.
- Heat: Personlig heat og bydelens heat ændrer salgspriser, afvisninger og risikoen for opkald til politiet.
- Zonekampe: Når to bander begge har mindst 30 % i samme bydel, kæmper de om den i 24 timer.
- Hemmeligt: Kun banden og dens allierede kan se, hvem der kontrollerer en bydel.
Kommandoer
| Kommando | Beskrivelse |
|---|---|
/zonevis | Viser bydelenes grænser i spillet. Kræver en ESX-gruppe fra Config.Permissions |
Indstillinger
Indstillingerne ligger i config.lua.
| Indstilling | Standard | Beskrivelse |
|---|---|---|
Config.Zones | 20 bydele | Bydelene og de GTA-zoner, de består af |
Config.Influence.control | 50 | Procent, der skal til for at kontrollere en bydel |
Config.Influence.maxZones | 4 | Højeste antal bydele pr. bande |
Config.Presence | Hvert 10. minut | Indflydelse for at være mindst 2 medlemmer i bydelen, op til 25 % |
Config.Decay.quietHours | 36 | Timer, før banden får besked om, at bydelen er stille |
Config.Decay.graceHours | 48 | Timer, før indflydelsen begynder at falde |
Config.War.threshold | 30 | Procent, begge bander skal have for en zonekamp |
Config.War.hours | 24 | Timer, en zonekamp varer |
Config.War.cooldownHours | 24 | Timer, før en ny zonekamp kan starte i bydelen |
Config.War.winnerMin | 55 | Mindste procent til vinderen |
Config.Heat.personalDecay | 6 | Personlig heat, der forsvinder pr. time |
Config.Heat.zoneDecay | 4 | Bydelens heat, der forsvinder pr. time |
Config.Heat.effects | 4 niveauer | Pris, afvisning, politiopkald og indflydelse pr. heat-niveau |
Aktiviteter
Config.Activities bestemmer, hvad hver aktivitet giver.
| Aktivitet | Indflydelse | Personlig heat | Bydelens heat |
|---|---|---|---|
sale | 0.5 | 3 | 1.5 |
tag | 3 | 2 | 1 |
heist | 12 | 30 | 20 |
event | 15 | 5 | 5 |
Forbind dine scripts
Alle exports er på serveren. Meld aktivitet fra dine egne scripts, for eksempel ved et narkosalg:
-- Bed om heat-effekten på salget
local sale = exports.fh_zones:RollSale(source)
if sale.refused then
return -- kunden siger nej
end
local price = basePrice * sale.price
-- Giv banden indflydelse i den bydel, spilleren står i
exports.fh_zones:Activity(source, 'sale')opts.factor ganger tallene, for eksempel ved et stort salg, og opts.heatFactor ganger kun den personlige heat:
exports.fh_zones:Activity(source, 'sale', { factor = 2.0 })Opkald til politiet
Når RollSale udløser et opkald, sender scriptet denne event på serveren. Brug den til at give dit eget politi-script besked:
AddEventHandler('fh_zones:policeCall', function(source, zoneKey, coords)
-- coords er sløret, så det ikke er det præcise sted
end)Exports
| Export | Beskrivelse |
|---|---|
Activity(source, kind, opts) | Melder en aktivitet fra Config.Activities |
RollSale(source, opts) | Slår en handel: level, price, refused, police |
GetSaleModifiers(source, zoneKey) | Giver pris og chancer uden at slå |
GetPlayerZone(source) | Giver bydelens nøgle og navn |
GetZoneAt(coords) | Giver bydelen ved en position |
GetZone(key) / GetZones() | Giver én eller alle bydele |
ControlsZone(gangId, key) | Kontrollerer banden bydelen? |
GetGangZones(gangId) | Giver bandens bydele |
GetInfluence(gangId, key) | Giver bandens indflydelse i en bydel |
AddInfluence(gangId, key, amount, reason) | Giver indflydelse |
GetHeat(source) / AddHeat(source, amount) | Læser eller hæver personlig heat |
GetZoneHeat(key) / AddZoneHeat(key, amount) | Læser eller hæver bydelens heat |
Raid(key, amount) | Trækker indflydelse fra alle bander i bydelen og giver heat. Standard er 10 |
ResetZone(key, reason) | Nulstiller en bydel |
Overview() | Giver en samlet oversigt over bydelene |
Ændringer
1.0.0 (1. november 2026)
- Første udgivelse.