# Karayel v0.3 — yönetim, güncelleme ve kabul notları

Bu sürüm v0.2 üzerindeki çalışan PHP oyununun genişletmesidir. Ayrı bir oyun veya sıfırlanan veri tabanı değildir. Hesap kimlikleri, şifre hashleri, bakiye, sahip olunan altı eski geminin kimlikleri, yükseltmeler, siparişler ve audit tablosu korunur.

## Mevcut kurulumu veri kaybetmeden güncelle

1. Oyunu kısa süre bakım için kapat; veritabanını ve bütün mevcut dosyaları yedekle.
2. `config/config.php`, `config/install-key.php`, `storage/` ve varsa kişisel sunucu ayarlarını KORU. ZIP'i bunların üstüne körlemesine açma.
3. Yeni paketteki `app/` ve `public/` dosyalarını değiştir. `public/assets/` derlenmiş yeni arayüzü içerir.
4. **install.php'yi yeniden çalıştırma.** Kurulu sistem kilitli kalır. Yeni içerik ve oyuncu alanları mevcut dünya kaydı okunurken eksik alanlara eklenir; ilk başarılı işlemde kalıcılaşır. Tablo silme veya hesap yeniden oluşturma yoktur.
5. Admin ve mevcut bir oyuncuyla giriş yap. Gemileri, bakiyeleri, eski siparişleri doğrula. Donanım ve harita ekranını aç. Ardından bakımı kaldır.
6. Geri dönüş gerekirse aynı zamana ait dosya + veritabanı yedeğini birlikte geri al. Eski kod ile yeni veriyi karıştırma.

Yeni kurulum: ana KURULUM.html ve README.md içindeki PHP 8.2+, HTTPS ve PDO MySQL adımlarını izle. Varsayılan HTTP kurulumunda Node/Composer gerekmez; isteğe bağlı WebSocket servisi Node.js 22+ ve VPS ister. MySQL için InnoDB kullan. SQLite yalnız küçük test/deneme kurulumları içindir. Testler SQLite ile çalıştırılmıştır; gerçek MySQL kurulumu ayrıca doğrulanmalıdır.

## Admin panelinde nereden yönetilir?

| Bölüm | Gerçek çalışan işlemler |
|---|---|
| Genel Dashboard | Kaptanlar, çevrimiçi anlık görüntü, toplam bakiye, NPC/PvP zaferleri, görev kayıtları |
| Oyuncu yönetimi | Altın, elmas, XP düzenleme; filo ve envanter görüntüleme; gemi/top/yelken/mühimmat/topçu ödülü |
| Gemi yönetimi | Yeni gemi, ad/sınıf, HP, hız, top/mürettebat/yelken kapasitesi, menzil/görüş, seviye, fiyat/birim, tarih, stok, durum |
| Gemi tasarımları | Ayrı kozmetik sahipliği; gövde, direk, yelken ve renk ayarları; PNG/WebP görseli |
| Top yönetimi | 8 başlangıç türü, hasar, menzil, isabet/kritik, doldurma, mühimmat uyumluluğu, yükseltme maliyeti |
| Topçu & mürettebat | Topçu fiyatı ve oyuncuya topçu verme; kapasite sunucuda doğrulanır |
| Yelken yönetimi | 5 başlangıç türü, fiyat, bonus, renk, dayanıklılık, seviye, satış tarihi |
| NPC yönetimi | 7 başlangıç türü, görsel, HP/kalkan, hız, hasar, savunma, menzil, atış aralığı, davranış, ödül, eşya düşüşü, doğma süresi |
| Harita editörü | 20 başlangıç bölgesi; yeni harita, boyut, seviye, PvP/PvE, bağlantılar, liman, ada yerleştirme, NPC ve doğma konumu/sayısı |
| NPC doğma grupları | Aynı haritada farklı NPC türleri için bağımsız konum ve adet |
| Görev yönetimi | NPC/tür öldürme, sandık, altın kazanma, keşif, seviye ve geliştirme hedefi; zincir, günlük/haftalık, para/XP/eşya ödülü |
| Seviye & XP | 50 seviyenin ayrı toplam XP eşiği ve unvanı. Azami seviye Oyun dengesi bölümünde |
| Mağaza & ürünler / Kampanyalar | Ekipman paketleri, adet, fiyat, yüzde indirim, tarih, stok, kişi başı sınır |
| Etkinlikler | Tarih aralığında bir haritanın NPC türünü etkinlik NPC'sine çevirme |
| Elmas & ödemeler | Manuel havale + isteğe bağlı PayTR, paket fiyatları, sipariş durumu, iade kaydı |
| Satış raporları | v0.3 sonrası gemi/donanım/mühimmat/tasarım alışveriş günlüğü, listelenen onaylı havale toplamı |
| Ceza & ban | Hesabı askıya alma/açma |
| Oyun dengesi | Maksimum seviye, ek seviye XP adımı, topçu bedeli, isteğe bağlı yönlü rüzgâr etkisi |
| Canlı sunucu | Son veri anı, oyuncu ve içerik sayıları, kullanılan bağlantı yöntemi |
| İşlem kayıtları | Yönetici işlemleri. PHP'de audit_log ayrıca kalıcıdır |
| Bayraklar / Mühimmat | Yeni bayrak ve PNG/WebP görseli, renk/fiyat; mühimmat hasar çarpanı ve fiyatı |

Kimlikler benzersizdir; mevcut satın almaları korumak için bir tanımı fiziksel olarak silmek yerine pasif yap. Gizli/pasif gemi eski sahibinden alınmaz. İki para birimi arasında oyuncular arası transfer yoktur.

## Oyuncu akışları

- **Tersane:** 6 altın ve 6 elmas gemisi. Satın alma fiyatı, seviye, tarih ve stok sunucuda doğrulanır. Kuşanmak için limana dön.
- **Donanım / Atlas / Görevler:** toplar, yelkenler, topçu, mühimmat, kozmetik ve paketler.
- Takılı top adedi, sahip olunan adet, gemi kapasitesi ve topçu sayısının en küçüğü aktiftir. **Bir aktif top için bir topçu gerekir.** Sıfır topçuyla eski top yükseltmesi olsa bile ateş edilemez.
- Her salvoda aktif top sayısı kadar mühimmat tüketilir. Topun uyumluluk listesi kontrol edilir.
- Aynı gemide farklı top ve yelken türleri birlikte kuşanılabilir. Karışık batarya tek salvoda ateş eder; en yavaş topun doldurması ve en kısa topun menzili kullanılır. Topçular kuşanma sırasıyla atanır.
- Ambar ağırlığı top başına 1, yelken başına 5, mühimmat başına 0,02 birimdir. Kapasiteyi aşan alışveriş reddedilir; daha küçük gemiye geçilirse aşırı yük hızı azaltır.
- Yelken bonusu yuva sayısıyla sınırlanır. Hasarlı yelken hızı azalır; tamir sağlığını geri getirir. Donanım limanda değiştirilir.
- Harita geçişi için Atlas'tan doğu kapısına rota çiz. Bağlı ve seviyene uygun denizi seç. Son 15 saniyede savaş varsa geçemezsin.
- PvE haritalarında oyuncuya ateş edilemez. PvP haritasında iki kaptanın da PvP açması gerekir. Liman güvenlidir.
- NPC'ler dolaşır, menzile yaklaşır, saldırganlığına göre hedef alır/karşılık verir, düşük HP'de uzaklaşır. `Kendini onarma` boss yeteneği seçilebilir.
- Günlük/haftalık görev ödülleri dönem başına tek kez alınır ve sonraki ödül için yeni hedef ilerlemesi gerekir.
- Sohbet yalnız aynı haritada görünür; mesajlar metin olarak işlenir, HTML çalıştırılmaz. Son 60 mesaj tutulur.

## Grafik ve akıcılık

Gemiler özgün çizimli Canvas 2.5D gövde, güverte, korkuluk, merdiven, ambar, galeri, top, halat, çoklu direk ve animasyonlu yelken içerir. Tek tek fotogerçekçi 3D modeller değildir. Özel PNG/WebP yüklemesi 300 KB ile sınırlıdır; şeffaf arka plan ve burnu sağa bakan üst/yan görünüş önerilir. Bir gemi görseli tüm gövdeyi değiştirir; bağımsız 3D parça dosyası/sürükle-bırak modelleme yoktur.

20 bölgenin ada yerleşimi ve tropik/kum/kaya/buz atmosferleri farklıdır. Sis/yağmur/fırtına görünümü ayarlanabilir. Gemi batma, duman, alev, namlu patlaması, mermi ve vuruş efektleri vardır. Dönüş ve hareket sadece çizim katmanında yumuşatılır; gerçek konum sunucudadır.

Masaüstü çizim hedefi 60, mobil 30 FPS'dir; bu her cihazda ölçülmüş FPS garantisi değildir. Mobil piksel yoğunluğu sınırlandırılır, görünmeyen sekmede çizim durur, adalar önbelleklenir. Katalog yalnız sürümü değiştiğinde yeniden gönderilir; gemilerin türetilmiş görsel verileri veritabanı ve ağda tekrarlanmaz.

## Doğrulananlar

- 24 otomatik TypeScript oyun testi.
- 3 otomatik WebSocket protokol testi ve gerçek PHP motoruna bağlanan gateway testi.
- PayTR sunucu bildirimi: sahte imza/tutar, test modu, tekrar bildirim ve tek bakiye yükleme testleri. Dış sağlayıcı isteği taklit edilmiştir.
- PHP donanım, harita, görev, kozmetik, paket ve sohbet testleri.
- İzole PHP HTTP/SQLite kurulumu: üyelik, CSRF, yetki, fiyat sahteciliği, tekrar istek, limanda kuşanma, admin içerik oluşturma, NPC doğması, tek ödül, sipariş onayı, şifre sıfırlama ve oturum iptali.
- Masaüstü ve 390 px mobil tarayıcıda oyun/donanım ekranı görsel kontrolü.
- Yerel motor ölçümü: 30 kaptan + 59 NPC, 100 simülasyon adımında ortalama yaklaşık 1,13 ms. Bu **HTTP eşzamanlılık, MySQL veya internet gecikmesi yük testi değildir**.

## Açık kalan üretim işleri — tamamlandı sayılmamalı

1. **PayTR modülü hazır; gerçek işyeri bağlantısı henüz kurulmadı.** Anahtarlar, sağlayıcının test/canlı onayı ve gerçek tahsilat testi gerekir. `PAYTR-KURULUM.md` adımlarını izle. Otomatik sağlayıcı iadesi/ters ibraz yoktur; admin iade kaydı para transferi yapmaz.
2. **Binlerce oyunculuk MMO yükü doğrulanmadı.** HTTP varsayılandır; isteğe bağlı WebSocket gateway `realtime/README.md` ile VPS'e kurulur. Gateway de PHP dünya kilidini kullanır. Büyük yayın için harita başına bağımsız simülasyon, veri ayrımı, izleme ve ağ/MySQL yük testi gerekir. Sites önizlemesi HTTP kullanır.
3. Çoklu NPC doğma grupları vardır; gelişmiş takım AI'sı ve çok aşamalı boss saldırıları henüz yoktur. Boss için kendini onarma yeteneği çalışır.
4. Karışık top/yelken ve ambar ağırlığı çalışır; özel mürettebat yetenek ağaçları henüz yoktur.
5. Lonca üyeliği/savaşı sistemi yoktur. Lonca temalı bayrak görseli yüklenebilir; gerçek loncaya bağlama henüz yoktur.
6. Editör sayı/renk/dosya ve ada yerleştirme temellidir. Profesyonel 3D sanat üretim hattı, parçalı 3D varlık editörü, deniz canlıları ve sinematik animasyonlar sonraki üretim işidir.
7. İçerik tanımı başına yönetim güvenlik sınırı 200 kayıttır; bu sürüm sınırsız içerik/hacim testi yapmaz.
8. E-posta adresiyle üyelik vardır; zorunlu e-posta doğrulaması yoktur. Şifre sıfırlama için sunucunun mail yapılandırması gerekir.

## İncelenen resmi kaynaklar

Oyun akışı için Seafight'ın resmi top, gemi eşyası, görev ve arayüz belgeleri incelendi. Kod, sayılar, çizimler ve tasarımlar bu projeye özgüdür:
- https://board-en.seafight.com/threads/cannons.1822/
- https://board-en.seafight.com/threads/ship-items.54273/
- https://board-en.seafight.com/threads/quests.1920/
- https://board-en.seafight.com/threads/options-overview.1858/
