> For the complete documentation index, see [llms.txt](https://axcos.gitbook.io/axcos-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://axcos.gitbook.io/axcos-docs/scripts/crosshair.md).

# CROSSHAIR

Valorant tarzı özelleştirilebilir crosshair scripti. Ayarlar veritabanında identifier bazlı saklanır, paylaşım kodu ile arkadaşlarla paylaşılabilir.

***

## Özellikler

* **Plus (+) şekli:** Dört kol (yukarı, sağ, aşağı, sol) ayrı ayrı ayarlanabilir
* **Kol ayarları:** Uzunluk, kalınlık, boşluk, açı, opaklık, açık/kapalı
* **Genel ayarlar:** Renk, kenarlık, açık/kapalı
* **Veritabanı:** Identifier bazlı kayıt — her oyuncu/karakter kendi ayarlarını kullanır
* **Paylaşım:** "Kodu Paylaş" ile JSON kodu panoya kopyalanır
* **İçe aktar:** "Crosshair Ekle" ile yapıştırılan kod tüm ayarları uygular
* **Çoklu dil:** Türkçe / İngilizce (Config veya axcos\_core üzerinden)

***

## Kurulum

{% stepper %}
{% step %}

### Bağımlılıklar

`ox_lib` ve `oxmysql` kurulu olmalı
{% endstep %}

{% step %}

### server.cfg

`server.cfg` içine ekleyin:

```
ensure ox_lib
ensure oxmysql
ensure axcos_crosshair
```

{% endstep %}

{% step %}

### Veritabanı

Veritabanı tablosu script çalıştığında otomatik oluşturulur. İsterse `axcos_crosshair.sql` dosyasını manuel çalıştırabilirsiniz.
{% endstep %}
{% endstepper %}

***

## Kullanım

| Komut        | Açıklama              |
| ------------ | --------------------- |
| `/crosshair` | Ayarlar menüsünü açar |

Menü **ESC** veya **X** butonu ile kapatılır. Ayarlar değiştirildikten sonra **Kaydet** butonuna basılmalıdır; sadece Kaydet ile veritabanına yazılır.

***

## Konfigürasyon

`shared/config.lua` dosyasından düzenlenir:

| Parametre                 | Varsayılan    | Açıklama                             |
| ------------------------- | ------------- | ------------------------------------ |
| `Config.Locale`           | `'tr'`        | Dil: `'tr'` veya `'en'`              |
| `Config.Command`          | `'crosshair'` | Komut adı                            |
| `Config.DefaultCrosshair` | —             | Varsayılan crosshair ayarları        |
| `Config.ColorPresets`     | 9 renk        | Hızlı renk seçimi için hazır renkler |

### Varsayılan crosshair yapısı

```lua
Config.DefaultCrosshair = {
  enabled = true,
  color = { 255, 255, 255, 255 },
  outline = false,
  outlineThickness = 1,
  outlineColor = { 1, 1, 1, 255 },
  arms = {
    top    = { enabled = true, length = 2, thickness = 1, gap = 0, angle = 0, opacity = 255 },
    right  = { enabled = true, length = 1, thickness = 1, gap = 0, angle = 0, opacity = 255 },
    bottom = { enabled = true, length = 2, thickness = 1, gap = 0, angle = 0, opacity = 255 },
    left   = { enabled = true, length = 1, thickness = 1, gap = 0, angle = 0, opacity = 255 },
  },
}
```

***

## Veritabanı

### Tablo yapısı

Script başlatıldığında otomatik oluşturulur:

```sql
CREATE TABLE IF NOT EXISTS axcos_crosshair (
  identifier VARCHAR(64) NOT NULL PRIMARY KEY,
  settings LONGTEXT,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
```

### Identifier davranışı

| Durum                 | Kullanılan identifier                                          | Sonuç                                                             |
| --------------------- | -------------------------------------------------------------- | ----------------------------------------------------------------- |
| **axcos\_core aktif** | `exports.axcos_core:Get().GetIdentifier(src)` (örn. citizenid) | Her karakter için ayrı kayıt                                      |
| **axcos\_core yok**   | `license:xxx` (GetPlayerIdentifiers)                           | Lisans bazlı — aynı hesaptaki tüm karakterler ortak ayar kullanır |

Kayıt işlemi **INSERT ... ON DUPLICATE KEY UPDATE** ile yapılır; aynı identifier varsa ayarlar güncellenir.

***

## Spawn / Render zamanlaması

Crosshair, spawn scripti tamamlandıktan sonra renderlanır. Multichar ekranında görünmez.

Desteklenen spawn event'leri:

| Framework                  | Event                          |
| -------------------------- | ------------------------------ |
| QBCore / Qbox (qbx\_spawn) | `QBCore:Client:OnPlayerLoaded` |
| ox\_core                   | `ox:playerLoaded`              |
| ESX                        | `esx:playerLoaded`             |

`playerSpawned` kullanılmaz; multichar sırasında erken tetiklenebildiği için crosshair yanlış zamanda görünebilir.

***

## Paylaşım kodu

{% stepper %}
{% step %}

### Kodu paylaş

1. Menüden ayarları düzenleyin
2. **"Kodu Paylaş"** butonuna tıklayın
3. Kod panoya kopyalanır; arkadaşınızla paylaşabilirsiniz
   {% endstep %}

{% step %}

### Kodu yapıştır (içe aktar)

1. **"Crosshair Ekle (Kod Yapıştır)"** butonuna tıklayın
2. Açılan alana paylaşılan kodu yapıştırın
3. Uygula → Ayarlar anında yüklenir, **Kaydet** ile DB'ye kaydedebilirsiniz
   {% endstep %}
   {% endstepper %}

***

## Opsiyonel: axcos\_core

`axcos_core` kuruluysa:

* **Identifier:** `GetIdentifier(src)` kullanılır (genelde citizenid — karakter bazlı)
* **Dil:** `GetLocale()` ile otomatik dil seçimi yapılır

***

## Dosya yapısı

```
axcos_crosshair/
├── fxmanifest.lua
├── client.lua          # Render, NUI, spawn event'leri
├── server.lua          # DB load/save, paylaşım kodu encode/decode
├── axcos_crosshair.sql # Opsiyonel manuel tablo kurulumu
├── shared/
│   ├── config.lua      # Varsayılan ayarlar, renk presetleri
│   └── locales.lua    # Dil metinleri (tr/en)
└── ui/
    ├── index.html      # Menü arayüzü
    └── app.js          # Slider, radiobar, kaydet, paylaş, içe aktar
```

***

## Bağımlılıklar

| Script      | Zorunlu                                  |
| ----------- | ---------------------------------------- |
| ox\_lib     | Evet                                     |
| oxmysql     | Evet                                     |
| axcos\_core | Hayır (identifier ve dil için opsiyonel) |

***

## Versiyon

0.2.0


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://axcos.gitbook.io/axcos-docs/scripts/crosshair.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
