Şampiyon Pet Güncellemesi (Vibe Coding)

  • Konuyu açan Konuyu açan Raviel
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 16
  • Gösterim Gösterim 637

Raviel

Premium Üye
Premium Üye
MT Üye
Mesaj
258
Çözümler
5
Beğeni
304
Puan
829
Ticaret Puanı
0
Herkese selamlar,

Başlıyorum ama bitiremiyorum serimizin 2. bölümüne hoşgeldiniz. :) Bugün sizlere yapmaya çalıştığım TR'ye yeni gelen Şampiyon Pet güncellemesinin ufak tefek değişikliğe gidilerek yapılmaya çalışılmış bir halini paylaşmak istiyorum.

Proje esnasında bütün geliştirmeler GPT-5 High Thinking modeli ile yapıldı. Bütün kodlamalar sırasında Cursor kullanıldı. Projenin gidişatını ve yapılanlar ve yapılacakları görebilmek adına Pet-Güncellemesi.md dosyası hazırladım ve bunuda sizle paylaşacağım.

Pet-Guncellemesi.md:
Genişlet Daralt Kopyala
## Pet Güncellemesi – Şampiyon Sistem Taslağı

### Karar Özeti

- Şampiyon Temel Değerleri (Evo4 ile başlar, rastgele 0.1%–0.5%):
  - Sungma RES (SUNGMA_RES)
  - Metin Taşlarına Karşı Güç (ATTBONUS_METIN) – Engelleme Nüfuzu yerine kullanılır
  - Tamlık (HIT_PCT)
- UI sırası (Conqueror sekmesi):
  1) Sungma Res  2) Metin  3) Tamlık
- Şampiyon seviye aralığı: 1–30
  - Evo5 engeli: Şampiyon 14. seviyede Evo5’e geçiş gerekir; Evo5 olmadan 15. seviyeye geçilemez.
  - Evo4’e geçiş: Pet 105. seviyede şampiyona geçerken Evo4 olur.
- Şampiyon EXP:
  - Sadece şampiyon EXP haritalarında (Conqueror/Sungma bölgeleri) kazanılır.
  - İtem EXP mevcut mantıkla devam eder, şampiyon EXP’den etkilenmez.
- Şampiyon sekmesi görünümü:
  - Pet şampiyon değilse (Evo4 değilse) şampiyon seviyesi 0 olarak görünür.

### Veritabanı Şeması (player_petsystem)

- Yeni sütunlar (önerilen):
  - `pet_champ_res` TINYINT UNSIGNED NOT NULL DEFAULT 0   // 0..5 → 0.1%..0.5%
  - `pet_champ_hit` TINYINT UNSIGNED NOT NULL DEFAULT 0   // 0..5 → 0.1%..0.5%
  - `pet_champ_metin` TINYINT UNSIGNED NOT NULL DEFAULT 0 // 0..5 → 0.1%..0.5%
  - `pet_champ_level` TINYINT UNSIGNED NOT NULL DEFAULT 0 // 0..30
  - `pet_champ_exp` INT UNSIGNED NOT NULL DEFAULT 0

Notlar:
- Şampiyon temel değerleri normal efsun değiştirme item’i ile DEĞİŞMEZ.
- İleride “Champion reroll” item’i istenirse ayrı bir akış eklenecek.

### Sunucu Mantığı (özet)

1) Evo Geçişleri
   - Evo4: Pet 105. seviyede şampiyona geçerken Evo4 olur. Bu anda `pet_champ_res/hit/metin` değerleri 1..5 aralığında rollanır ve kaydedilir.
   - Evo5: Şampiyon seviye 14’e ulaşıldığında Evo5’e yükseltme yapılır; Evo5 olmadan şampiyon 15. seviyeye geçilemez.

2) Buff Uygulama (GiveBuff)
   - Tamlık: `AddAffect(AFFECT_GROWTH_PET, POINT_HIT_PCT, pet_champ_hit, ...)`
   - Metin: `AddAffect(AFFECT_GROWTH_PET, POINT_ATTBONUS_METIN, pet_champ_metin, ...)`
   - Sungma RES: `AddAffect(AFFECT_SUNGMA_RES, <uygun point>, pet_champ_res, ...)` (küçük yüzdeler kalıcı etki)

3) Şampiyon EXP
   - `pet_champ_level` ve `pet_champ_exp` alanları yönetilir.
   - EXP sadece şampiyon EXP bölgelerinde artar (oyuncu Conqueror mantığına paralel gate).
   - Seviye atlama: `pet_champ_exp >= nextExp(level)` → level++ (30’a kadar). 14 → Evo5 geçiş şartı kontrol edilir.

4) Kaydet/Yükle (Summon/SaveSQL/Load)
   - Yeni sütunlar Load/Summon sırasında okunur, SaveSQL ile güncellenir.

### İstemci (UI) ve Paket

- Paket genişlemesi: `TGrowthPetInfoPacket` içine `pet_champ_level`, `pet_champ_exp`, `pet_champ_res/hit/metin` alanları eklenir (veya ilave paket).
- Conqueror sekmesi:
  - Normal Level/EXP yerine “Champion Lv/Exp” gösterilecek.
  - Şampiyon değilse (Evo4 değilse) “Champion Lv: 0 / Exp: 0” göster.
  - Özellik satırları sırası: “Sungma Res”, “Metin”, “Tamlık”.
- Potential (GF API):
  - `Open/Close/RequestToGrantPotential/RequestToRemovePotentialEgg/IsEnablePotentialSlot/SetPotentialSkillCoolTime` bağlanır; sunucu API’si hazır olduğunda çalışır.

### Uygulama Adımları

1) DB Migration:
   - Yeni sütunları ekle, varsayılanları 0 yap.

2) Sunucu Kodları:
   - `CGrowthPetSystem` – Evo geçişleri, Champion roll ve `GiveBuff` ekleri.
   - EXP akışı – şampiyon EXP bölgelerinde `pet_champ_exp` artışı, 14→Evo5 gate.
   - Paketleme – yeni alanları `SendPetInfoPacket` ile gönder.

3) İstemci Kodları:
   - Conqueror sekmesi: Champion Lv/Exp alanları, özellik sırası.
   - Potential pencere köprüleri (GF API hazır bağlar).

4) Değişmezlik:
   - Normal efsun değiştirme item’i şampiyon sütunlarına etki ETMEZ.

### Notlar

- Metin gücü (ATTBONUS_METIN) mevcut bağlamda güvenli muadildir; Engelleme Nüfuzu efsunu daha sonra eklenecekse yalnızca APPLY/POINT map’i değiştirilerek geçiş yapılabilir.
- İtem EXP akışı mevcut, şampiyon EXP’den bağımsızdır.



---

## Şampiyon Sistemi – Ayrıntılı Tasarım (Server/DB/UI)

### 1) Pet Uzmanlığı (Expertise) – Kaynak ve yaklaşım
- PetTypeAttrTable sadece normal stat ilerlemelerini (HP/ATK/DEF artış adımları) tanımlar; uzmanlık havuzunu tanımlamaz.
- Her yumurtanın uzmanlık alanı için kaynak: `SPetTable PetListTable` (egg/seal vnum bazlı kimlik). Uzmanlık havuzunu bu yumurta kimliklerine göre biz tanımlayacağız.
- Öneri (server): `g_PetPotentialSkillPool` adında sabit bir tablo (C++) oluşturulacak. Anahtar = `egg_vnum` (ör. 55401 Monkey), değer = izinli skill kitap vnum listesi (SPetSkillTable içindeki `dwBook`). Kodlar `item_names.txt` ile doğrulanacak.
- Kullanıcı listesinden uzmanlık→skill isimleri (kodlar uygulama sırasında eşlenecek):
  - Küçük Maymun: Menzil, Yang Düşürme, Karakter Savunma, Yenileme
  - Küçük Örümcek: Menzil, Ayna, Karakter Savunma, Yenilmezlik, Yenileme
  - Küçük Razadör: Menzil, Berserker, Karakter Savunma, Talim, Yenileme
  - Küçük Nemere: Menzil, Büyü Bozma, Karakter Savunma, Tüy Gibi, Yenileme, İyileştirme (Pet)
  - Küçük Ejderha: Menzil, Berserker, Karakter Savunma, Talim, Yenileme
  - Küçük Meley: Canavar Avcısı, Engel, Mayalama Ustası, Hızlandırma, Yenileme, Yenilmezlik, İyileştirme (Pet)
  - Baashido Yavrusu: Berserker, Yang Düşürme, Karakter Savunma, Vampir, Hayalet, Tüy Gibi
  - Tombik Cellatçık: Menzil, Berserker, Talim, Büyü Bozma, Yenileme
  - Nessie: Canavar Avcısı, Engel, Mayalama Ustası, Hızlandırma, Yenileme, Yenilmezlik, İyileştirme (Pet)
  - Azrailcik: Menzil, Ayna, Karakter Savunma, Yenilmezlik, Yenileme
  - Exedyar Yavrusu: Berserker, Vampir, Hayalet, Karakter Savunma, Tüy Gibi
  - Öfkeli Mini Alastor: Menzil, Büyü Bozma, Engel, Talim, Berserker, Canavar Avcısı

Not: İsim→SPetSkillTable eşlemesi (örn. Menzil→Bow-Range 55025, Yang Düşürme→55024, Ayna→Reflection 55023, Yenileme→Restoration 55019, Yenilmezlik→Immortal 55026, Büyü Bozma→Anti Magic 55016, Tüy Gibi→Featherlight 55038, Canavar Avcısı→Monster Hunter 55035, Engel→Bulwark 55022, Hızlandırma→Haste 55017, Vampir→Vampirism 55020, Hayalet→Spiritualism 55021, Talim→(EŞLEŞTİRİLECEK)) uygulama sırasında `SPetSkillTable` üzerinden netleştirilecek.

### 2) Şampiyon EXP Sistemi
- Sadece Yohara/Conqueror EXP veren haritalarda artar. Mantık karakter Conqueror EXP gate’i ile aynı olacak (server tarafında aynı gate fonksiyonu/mekanizması çağrılacak).
- Normal EXP/İtem EXP: Pet şampiyon moduna geçtiğinde (Evo4) normal EXP ilerlemesi durur, sadece Şampiyon EXP işler. İtem EXP şampiyon seviyesinde geçerli değildir.
- Şampiyon EXP tablosu (1→30; 30 seviye üst sınır):

| Seviye | EXP       | Nesne EXP |
|-------:|-----------|-----------|
| 1      | 173.360   | -         |
| 2      | 520.082   | -         |
| 3      | 1.040.165 | -         |
| 4      | 1.733.612 | -         |
| 5      | 2.600.421 | -         |
| 6      | 3.640.596 | -         |
| 7      | 4.854.136 | -         |
| 8      | 6.241.041 | -         |
| 9      | 7.801.314 | -         |
| 10     | 9.534.954 | -         |
| 11     | 11.441.962| -         |
| 12     | 13.522.340| -         |
| 13     | 15.776.087| -         |
| 14     | 18.203.206| -         |
| 15     | 20.803.696| -         |
| 16     | 23.577.558| -         |
| 17     | 26.524.794| -         |
| 18     | 29.645.403| -         |
| 19     | 32.939.388| -         |
| 20     | 36.406.748| -         |
| 21     | 40.047.484| -         |
| 22     | 43.861.598| -         |
| 23     | 47.849.089| -         |
| 24     | 52.009.960| -         |
| 25     | 56.344.210| -         |
| 26     | 60.851.840| -         |
| 27     | 65.532.852| -         |
| 28     | 70.387.245| -         |
| 29     | 75.415.022| -         |
| 30     | X         | X         |

Server uygulaması:
- `CGrowthPetSystem::UpdateExperience(mode)` içine “mode == CHAMPION” kolu eklenir; EXP artışı sadece harita gate’i sağlandığında işlenir.
- `nextExp(level)` fonksiyonu bu tabloyu kullanarak hesaplanır.
- 14→15 geçişinde Evo5 şartı uygulanır; Evo5 olmadan level 15’e geçiş engellenir.

### 3) Evo4/Evo5 Gereken Eşyalar
- Evo4 (Şampiyon 1’e geçiş) – PET 105, max normal/item exp, gelişim penceresi:
  - 50255 × 1000
  - 55003 × 10
  - 55004 × 10
  - 55005 × 10
  - 61256 × 10
  - 61525 × 10
  - 61528 × 10
  - 61531 × 10

- Evo5 (Şampiyon 15’e geçiş – 14 seviye full EXP sonrası):
  - 30616 × 10
  - 31253 × 10
  - 31254 × 10
  - 31255 × 10
  - 70429 × 10
  - 70412 × 10
  - 61531 × 10
  - 50261 × 1000

Uygulama:
- `SPetEvoTable` genişletilmeyecek; şampiyon evrimi için ayrı tablo/tetik:
  - `SPetChampionEvoReq { BYTE champGate; DWORD itemVnum[8]; DWORD itemCount[8]; }`
  - Gate: 1→Evo4 (champ lvl 1), 14→Evo5.
- `CGrowthPetSystem::IncreasePetEvolution()` içinde “şampiyon evrim” kolu, yukarıdaki gate ve item kontrolü ile uygulanır.

### 4) Şampiyon Temel Değerler (Base Roll) ve Kalıcılık
- Evo4 anında roll: RES/HIT/Metin için 0.1%–0.5% arası (1..5 birim) değerler rastgele belirlenir ve `player_petsystem`’e yazılır.
- Bu değerler kalıcıdır; normal efsun değişim item’leri ETKİLEMEZ.
- Her tip pette artış aynı aralıktadır (SPetAttrTable mantığına paralel, ancak ayrı sütunlarda saklanır ve GiveBuff ile uygulanır).

### 5) Potansiyel (Potential) Penceresi ve Akış
- Kilit açma:
  - Slot 0: Evo≥4 VE Şampiyon Lv≥1
  - Slot 1: Evo≥5 VE Şampiyon Lv≥14
- Yumurta yerleştirildiğinde:
  - Yumurta uzmanlık havuzundan rastgele 1 skill seçilir.
  - Şampiyon seviye bandına göre skill seviye üst sınırı uygulanır:
    - Lv 1–14: max 1
    - Lv 15–19: max 3
    - Lv 20–29: max 4
    - Lv 30: max 6
  - Skill süresi rastgele 2/3/4/5/6 saat. Server tarafı bitiş zamanını tutar, UI’ye kalan süre `SetPotentialSkillCoolTime` ile aktarılır.
- Yumurta kaldırılırsa:
  - Skill ve etkisi DERHAL kaldırılır. Slot boşalır. (Kalıcılık: yumurta takılı kaldığı sürece aktif; yumurta çıkarılırsa biter.)
- Kalıcılık ve DB:
  - Slot başına şu alanlar önerilir: `egg_vnum`, `skill_vnum`, `skill_level`, `skill_expire_ts`.
  - Bu alanlar DB’de saklanır; yeniden giriş/çağırma sonrası durum korunur. Süre dolmuş kayıtlar yüklemede temizlenir.

#### 5.a) SPetSkillTable – Kitap Kodları ve Etki Eşleşmeleri

| Kitap Vnum | Ad (TR)                     | SPetSkillTable Affect / Not | Not |
|-----------:|-----------------------------|-----------------------------|-----|
| 55010 | Dayanıklılık (Savaşçı) | POINT_RESIST_WARRIOR | Pasif |
| 55011 | Dayanıklılık (Sura) | POINT_RESIST_SURA | Pasif |
| 55012 | Dayanıklılık (Ninja) | POINT_RESIST_ASSASSIN | Pasif |
| 55013 | Dayanıklılık (Şaman) | POINT_RESIST_SHAMAN | Pasif |
| 55014 | Dayanıklılık (Lycan) | POINT_RESIST_WOLFMAN | Pasif |
| 55015 | Berserker Kitabı | POINT_ATT_GRADE | Pasif |
| 55016 | Büyü Bozma Kitabı | POINT_RESIST_MAGIC | Pasif |
| 55017 | Hızlandırma Kitabı | POINT_CASTING_SPEED | Pasif (CD azaltıcı) |
| 55018 | Talim Kitabı | POINT_PENETRATE_PCT | Pasif |
| 55019 | Yenileme Kitabı | Affect=4 (Restoration) | Aktif/uzun etkili |
| 55020 | Vampir Kitabı | POINT_STEAL_HP | Pasif |
| 55021 | Hayalet Kitabı | POINT_STEAL_SP | Pasif |
| 55022 | Engel Kitabı | POINT_BLOCK | Pasif (Karakter Savunma olarak kullanacağız) |
| 55023 | Ayna Kitabı | POINT_REFLECT_MELEE | Pasif |
| 55024 | Yang Düşme Kitabı | POINT_GOLD_DOUBLE_BONUS | Pasif |
| 55025 | Menzil Kitabı | POINT_BOW_DISTANCE | Pasif |
| 55026 | Yenilmezlik Kitabı | Affect=11 (Immortal) | Aktif |
| 55027 | İyileştirme Kitabı | Affect=6 (Panacea) | Aktif |
| 55034 | Mayalama ustası kitabı | POINT_POTION_BONUS | Pasif |
| 55035 | Canavar avcısı kitabı | POINT_ATTBONUS_MONSTER | Pasif |
| 55036 | Kavrayış kitabı | POINT_MALL_EXPBONUS | Pasif |
| 55037 | Can çekme kitabı | POINT_KILL_HP_RECOVERY | Pasif |
| 55038 | Tüy gibi kitap | Affect=6 (Featherlight) | Aktif |
| 55039 | Metin patlatan kitabı | POINT_ATTBONUS_METIN | Pasif |

Not: “Karakter Savunma” sınıf bazlı dayanıklılık kitaplarıdır: 55010 (Savaşçı), 55011 (Sura), 55012 (Ninja), 55013 (Şaman), 55014 (Lycan).

#### 5.b) Uzmanlık Havuzları (Yumurta → Uygun Kitaplar)

| Yumurta (ör.) | İzinli kitap vnumları |
|---|---|
| Küçük Maymun | 55025 (Menzil), 55024 (Yang Düşürme), 55010 (Karakter Savunma – Savaşçı), 55011 (Karakter Savunma – Sura), 55019 (Yenileme) |
| Küçük Örümcek | 55025 (Menzil), 55023 (Ayna), 55014 (Karakter Savunma – Lycan), 55026 (Yenilmezlik), 55019 (Yenileme) |
| Küçük Razadör | 55025 (Menzil), 55015 (Berserker), 55012 (Karakter Savunma – Ninja), 55018 (Talim), 55019 (Yenileme) |
| Küçük Nemere | 55025 (Menzil), 55016 (Büyü Bozma), 55013 (Karakter Savunma – Şaman), 55038 (Tüy gibi), 55019 (Yenileme), 55027 (İyileştirme) |
| Küçük Ejderha | 55025 (Menzil), 55015 (Berserker), 55012 (Karakter Savunma – Ninja), 55018 (Talim), 55019 (Yenileme) |
| Küçük Meley | 55035 (Canavar Avcısı), 55022 (Engel), 55034 (Mayalama Ustası), 55017 (Hızlandırma), 55019 (Yenileme), 55026 (Yenilmezlik), 55027 (İyileştirme) |
| Baashido Yavrusu | 55015 (Berserker), 55024 (Yang Düşürme), 55014 (Karakter Savunma – Lycan), 55020 (Vampir), 55021 (Hayalet), 55038 (Tüy gibi) |
| Tombik Cellatçık | 55025 (Menzil), 55015 (Berserker), 55018 (Talim), 55016 (Büyü Bozma), 55019 (Yenileme) |
| Nessie | 55035 (Canavar Avcısı), 55022 (Engel), 55034 (Mayalama Ustası), 55017 (Hızlandırma), 55019 (Yenileme), 55026 (Yenilmezlik), 55027 (İyileştirme) |
| Azrailcik | 55025 (Menzil), 55023 (Ayna), 55014 (Karakter Savunma – Lycan), 55026 (Yenilmezlik), 55019 (Yenileme) |
| Exedyar Yavrusu | 55015 (Berserker), 55020 (Vampir), 55021 (Hayalet), 55014 (Karakter Savunma – Lycan), 55038 (Tüy gibi) |
| Öfkeli Mini Alastor | 55025 (Menzil), 55016 (Büyü Bozma), 55022 (Engel), 55018 (Talim), 55015 (Berserker), 55035 (Canavar Avcısı) |
| Bebek Kumandan | 55025 (Menzil), 55016 (Büyü Bozma), 55022 (Engel), 55018 (Talim), 55015 (Berserker), 55035 (Canavar Avcısı), 55019 (Yenileme) |

Server uygulaması:
- `GrantPotential(slot)` çağrısında ilgili `egg_vnum` üzerinden bu havuzdan rastgele bir kitap seçilir, seviye bandına göre `skill_level` rollanır, 2–6 saatlik süre üretilir ve DB+UI senkronlanır.


### 6) Paket/İstemci Köprüleri
- Server→Client:
  - `GrowthPet_SetChampionInfo(level, exp, nextexp, res, metin, hit)` – Conqueror sekmesini günceller.
  - `GrowthPet_SetPotentialInfo(slot, egg_vnum, skill_vnum, skill_level)` – Potansiyel ana/pencere slotlarını senkronlar.
  - `GrowthPet_SetPotentialSkillCoolTime(slot, seconds)` – kalan süre güncellemesi.
- Client→Server:
  - `RequestToGrantPotential(slot)` – yumurta takılıysa skill roll ve başlat.
  - `RequestToRemovePotentialEgg(slot)` – yumurta/skill’i kaldır.

### 7) Uygulama Sıralaması (Server → DB → Client)
1. DB migration: champion sütunları + potential slot sütunları.
2. Server: Evo4/Evo5 gate ve item kontrol; base roll; GiveBuff ekleri; champion EXP (map gate); potential state/roll/süre; paketler.
3. Client: mevcut GF akış köprüleri zaten hazır; sadece yeni paketlere bağlanacak (interfacemodule → uipetsystem).

### 8) Açık Noktalar / Onay Bekleyenler
- “Talim” isminin SPetSkillTable karşılığı (kitap vnumu) netleştirilecek.
- Uzmanlık listesi yumurta→kitap vnumları `item_names.txt` ile kesinleştirilecek.
- Şampiyon EXP haritaları listesi (Yohara alt-bölgeler) karakter Conqueror gate’i ile birebir eşlenecek.


Sistemi yaparken Youtube, Metin2 Wiki gibi kaynaklardan yararlanarak olabildiğince official tadında yapmaya çalıştım.

Sistemi bilmeyenler için burada detaylı bir videosu mevcut.



Sistem tamamen GrowtPet sistemi üzerine yazıldı ve kodlandı. Şu anda UI süreçlerini tamamlamaya çalışıyorum. UI tarafı bittikten sonra server tarafına geçicem.

Şu anda mevcut UI kısmına şampiyon kısmı ve şampiyon skilleri eklendi. Yazılar okunmadığından dolayı özellikleri anlamanız adına bende yazayım:

SungMa iradesi (RES)
Metin taşlarına karşı güçlü
Yüzdelik olarak Tamlık

1758520281061.webp
1758520364535.webp
1758520395296.webp


- UI kısımlarında özellikle uipetsystem.py tarafında GF'nin kullandığı API'lerden yararlanılarak kodlaması yapıldı.
- Şampiyon ve Normal Level gösterimi birbirinden ayrıldı.
- Şampiyon Exp Tablosu tamamen Official'e göre düzenlendi ve Şampiyon seviyesinde Item exp kapatıldı.
- Şampiyon Exp'i tamamen Yohara haritalarında alınacak şekilde düzenlendi ve ayarlandı.


1758520523796.webp


Wiki'de ki oranlar bunlardı.

Potansiyel beceri slotları Şampiyon1 (Evo4), Şampiyon 15(Evo5) kademelerinde açılacak şekilde düzenlendi.

1758520593858.webp

1758520603142.webp


- Yumurtadan gelen özellikler tamamen Petin Uzmanlık alanına göre tamamen rastgele gelecek şekilde ayarlandı. Şu anda UI tarafının neredeyse %70'i bitti sayılır. Bu sistemi bitirebilirsem güzelce umarım paylaşabilirim. Takılacağım konularda konu üzerinden bilen arkadaşlarımızla beraberde ilerleyebiliriz.

Keyifli okumalar :)
 
Yeni güncelleme olarak bir kaç hata giderdim ve source tarafını neredeyse tamamladım.
Genelde bu adımda oyunda test ederek sorunları ve istediğimi yapay zekaya ileterek ilerliyorum ve adım adım gidiyorum.



Eklenenler

- Şampiyon aşamaları için Evo4 ve Evo5 eklendi. Bunlar için gereken itemlar growth_petsystem.cpp'nin içerisine eklendi.

1758596809450.webp


1758596909767.webp


- Şampiyon pet için Level gösterimi eklendi

1758596329672.webp


SQL tarafında tamamlanan kısımlar:

- Şampiyon seviyesi
- Şampiyon EXP
- Şampiyon sonra ki level EXP
- Şampiyon statları (SungMa Res, Metin taşlarına karşı güç, Tamlık Bonusu)
- 1. ve 2. yumurtaların uzmanlık kodları
- 1. ve 2. yumurtadan gelen uzmanlık skillerinin kodları
- 1. ve 2. yumurtada gelen uzmanlık skillerinin güç değerleri
- 1. ve 2. yumurtadan gelen uzman skillerinin süreleri

Bazı hata düzeltmeleri
- SungMa Res becerisi Affect olarak veriliyor ve Pet gönderildiğinde bile kalıyordu bu sebeple sonsuz bir artış söz konusuydu. Bu sorun düzeltildi ve bu özellikler AFFECT_GROWTH_PET bloğunun altına taşındı.

Yohara'dan EXP alabilmesi adına şampiyon karakterlerde uygulanan EXP mantığı var ancak henüz test edilmedi. UI tarafında bir çok eksik var. Şampiyon değerlerinin doğru gözükmemesi, Şampiyon seviyesinin doğru şekilde yansıtılmaması. Yumurta slotlarının kapakçıklarının doğru şekilde kaldırırlmaması gibi. Bunları GF'nin nasıl yönettiğini detaylıca baktıktan sonra kalan güncellemeleride ekleyeceğim. UI konusunda bilgisi olan arkadaşlarımız dilerse yardımcı olmayı seve seve kabul ederim :)
 

Dosya Eklentileri

  • 1758596216593.webp
    1758596216593.webp
    33,4 KB · Gösterim: 21
Yapay zekanın yardımlarına bayılıyorum, cursor favorim bu konuda tüm projeyi yüklüyorsun ne nerde söyledikten sonra gpt-5-fast kendisi neyi nereye yerleştirmesine kadar öğrenip hallediyor valla :D sıfırdan metin2de olmayan sistem bile yazılır
 
Yapay zekanın yardımlarına bayılıyorum, cursor favorim bu konuda tüm projeyi yüklüyorsun ne nerde söyledikten sonra gpt-5-fast kendisi neyi nereye yerleştirmesine kadar öğrenip hallediyor valla :D sıfırdan metin2de olmayan sistem bile yazılır
Burada en büyük iş modellerin. GPT-5 şu ana kadar gördüğüm en tutarlı modellerden biri. Bir konuda hayal görüp ısrar etmesi %60 azaltılmış olmasıyla beraber gerçekten başarılı. Zamanla modeller geliştikçe bizim yapabildiklerimizde çok yukarılara çıkacaktır.
 
Hocam çok bependim projeyi cursor un indirme linkini de bırakabilir misiniz merak ettim gerçekten yapay zeka nasıl sistem yazabiliyor büyüleyici
 
Burada en büyük iş modellerin. GPT-5 şu ana kadar gördüğüm en tutarlı modellerden biri. Bir konuda hayal görüp ısrar etmesi %60 azaltılmış olmasıyla beraber gerçekten başarılı. Zamanla modeller geliştikçe bizim yapabildiklerimizde çok yukarılara çıkacaktır.
mutfak robotuna zaafım var :D
Hocam çok bependim projeyi cursor un indirme linkini de bırakabilir misiniz merak ettim gerçekten yapay zeka nasıl sistem yazabiliyor büyüleyici
 
Güncelleme v0.3

- Dün bütün gün neredeyse UI tarafında ki hatalar, sorunlar kaymalar ile uğraştım. Özellikle şampiyon seviyesinde ki petlerin skilleri kademeli olarak açıldığından dolayı UI'da bulunan skill kapakçıklarının kaldırılmasıyla alakalı uzun uğraşlar sonucu başarıdm. 3 farklı model değiştirdim çünkü bazen bir modelin çözemediği bir sorunu farklı modeller farklı yaklaşımlarla çözmeye çalışıyor. Örneğin Claude'un çok ısrarcı olduğu bir konuda Google'ın tamamen farklı bir metodu 1 gün boyunca uğraştığım sorunu 5 dakikada çözmüştü. Bu sebeple bazen model değiştirmek iyi olabiliyor.

Yapılanlar

- Normal EXP ve Şampiyon EXP kutucukları için Tooltip eklendi ve exp baloncukları şampiyon ve normalde ayrılacak şekilde ayarlandı
- UI kısmında olan yazılar için locale anahtarların hepsi GF'nin anahtarlarıyla birebir olarak değiştirildi ve locale dosyalarına eklendi.
- Şampiyon item EXP devre dışı bırakıldı. (Bunun sebebi Official oyunda nesne itemi olan Nefis Lokma dışında EXP alınmıyordu. Şampiyon EXP'si veren bir item eklendiğinde tekrardan bu item exp aktif edilecek.)
- Petlerin üzerinde Şampiyon güncellemesine özel gelen Tooltiplerin locale anahtarları eklendi. Bugün güncellemeyle bunlar tooltip olarak gözükecek.

1758685858111.webp
1758685897475.webp
1758686089515.webp


Giderilen hatalar

- Şampiyon petler hareket edildiğinde Level gösterimi eski seviye gösterimine geri dönüyordu. Bunun için server tarafına devamlı şampiyon levelını koruyabilmesi adına gerekli şeyler eklendi.
- Şampiyon EXP alımı yalnızca Yohara maplerinde aktif olacak şekilde düzenlendi.

Bugün olabildiğince şampiyon exp, level atladığında level atlama efekti ve yumurtalardan özellik ekleme kısımlarına girişeceğim. Neredeyse bitti denecek kadar az şey kaldı. Her gün güncellemeleri paylaşmaya devam edicem :)
 
Güncelleme v0.4

Source tarafı:
- Şampiyon pet'in bilgilerini göndermek amacıyla gerekli yeni oluşturulmuş paketler eklendi

1758723473121.webp


- Şampiyon Petler için gerekli Tip 1..8 arasında şampiyon statlarının artışları adına tablo hazırlandı ve eklendi
- Gerekli paketler için Client tarafında gerekli kodlar eklendi.

- Şampiyon Pet için Evolution 4 ve Evolution 5 için yeni boyutlandırmalar ve işampiyon seviyesine bağlı boyutlandırmalar eklendi:

1758723657855.webp


Pet boyut büyüme eşikleri
  • Normal seviye bazlı ölçek:
  • 0–9: 0.60x
  • 10–19: 0.70x
  • 20–29: 0.75x
  • 30–39: 0.80x
  • 40–49: 0.90x
  • 50–59: 0.95x
  • 60–69: 1.00x
  • 70–79: 1.10x
  • 80–89: 1.20x
  • 90–98: 1.25x
  • 99–104: 1.30x
  • 105: 1.50x (Evo4 eşiği)

    Şampiyon (Evo4+, normal seviye 105+):
  • Her 5 Şampiyon seviyesinde +0.02 ek ölçek: CLv 5 → +0.02, 10 → +0.04, 15 → +0.06, 20 → +0.08, 25 → +0.10.
  • Toplam ölçek üst sınırı: 1.60x.

- Şampiyon petlerin Tooltipinde gözükmesi gereken bilgiler Official ile benzer şekilde kodlandı ve eklendi. (Sonda ki tekrarın sebebi potansiyel beceri kısmını henüz yazmamış olmam. O potansiyel beceriler yazıldıktan sonra en altta ki tekrar eden kısım değişecek.)

1758723835790.webp


Şu anda bir kaç hatadan biri henüz "F. Sv1" yazan kısımda ki seviye hatalı sadece. Pet şampiyon levelı 16 iken burası 1 gösteriyor. Burası düzenlenecek. Onun dışında neredeyse bir şey kalmadı sayılır. Ufak tefek UI düzenlemeleri kaldı daha sonrasında en kapsamlı olan Potansiyel Şampiyon becerileri kısmına geçeceğim. Umarım çok yormadan bitiririz. Bu iki günde baydım ve bitmeye yakınım :D

Ayrıca beğenileriniz için çok teşekkür ederim. Benim için çok güzel bir destek.
 
Burada en büyük iş modellerin. GPT-5 şu ana kadar gördüğüm en tutarlı modellerden biri. Bir konuda hayal görüp ısrar etmesi %60 azaltılmış olmasıyla beraber gerçekten başarılı. Zamanla modeller geliştikçe bizim yapabildiklerimizde çok yukarılara çıkacaktır.
claude sonnet 4 mü gpt5 mi sence?
 
claude sonnet 4 mü gpt5 mi sence?
Bu ne yaptığınıza bağlı değişir ben projelerin temelinde ağırlıklı olarak GPT-5 kullanmaya başladım uzun zamandır. Bunu tercih etmemde ki en büyük sebep ise hayal görmesinin %60'a yakın azaltılması. Claude tasarım konusunda başarılı ve hızlı ancak çok pahalı. GPT şu an istediğim herşeyi yapıyor ve limite hiç takılmadım diyebilirim. Claude kendi kafasına göre hareket ederken GPT projeyi araştırarak projeye uyumlu şekilde çalışıyor.

Örnek web tasarımında hala tasarımsal olarak hayal etme konusunda eğer dikkat çekici bir şey istiyorsam Claude bence daha önde. Çünkü daha kreatif şeyler yaratabiliyor ancak sadelik ve stabilite istiyorsam GPT'ye yöneliyorum
 
Güncelleme v0.5

Ana UI tarafında artık neredeyse çoğu şey bitti denilecek kadar ilerledim.

- Şampiyon pet'in tooltiplerinden potansiyel hariç çoğu tamamlandı.
- Normal petler ve Şampiyon petlerin tooltipleri ayrıldı. Artık petler eğer şampiyon ise artık mevcut şampiyon statları ve şampiyon levellarıda yazıyor.
- Tooltip tarafında fazladan olan istatistikler düzenlendi ve kaldırıldı.

1758823670338.webp
1758823770872.webp
1758823779111.webp


Yeni Potansiyel penceresi ve Şampiyon skilleri ile alakalı olarak eskiden yapılan UI problemleri üzerinde bugün çok durdum. UI konusunda çok bilgili olmamandan dolayı gerçekten çok yorucuydu :)

Şu anda potansiyel penceresinde pet yumurtası koyduğunuzda o petin uzmanlıklarına göre rastgele bir skill ve beceri seviyesi alıyorsunuz. Bu beceri seviyeleri petin levelına göre değişkenlik gösteriyor. Her petin ayrı uzmanlık alanları var. Yani her yumurtadan farklı beceriler elde edebiliyorsunuz. Bunlar maksimum 6 seviyeye kadar 2 ila 6 saat aralığında rastgele oluşuyor. Normalde Official'da bunlar yumurtanın gününe bağlı olarak değişiyor ancak kullandığım filesta henüz yumurtaların süresi olmadığı için bunu kendim rastgele belirlemek istedim.

Videoda olan efektlere takılmayın :) Onları henüz düzenlemedim. Bugün sadece potansiyel slotunda yumurtadan çıkan becerinin Ana UI kısmına gelmemesiyle uğraştım. Bir sonra ki güncellemede her şey tamam olacaktır.

 
Tekrardan selamlar,

Konuyu hortlatalım tam 10 gün sonra. Hem kendi bireysel işlerimden hemde bu sistemin biraz beni UI tarafında darlamasından dolayı ara vermiştim. Şimdi tekrardan devam ediyorum.

Ciddi bir ilerleme kaydettim. Ancak maalesef animasyon olayını beceremediğim için bunları atlamak zorunda kaldım tabi bu süreçte farklı yapay zeka modelleri denerken biraz daha içeriği bozmuş olabilirim bu sebeple animasyonsuz devam etme kararı aldım. İleride belki görsel olarak dahada geliştirilebilir veya görsel konusunda uzman arkadaşlarımız yardımcı olurum tamamlarım derse seve seve paylaşırım.

Şimdi elimizde artık resmen bir şampiyon pet sistemi var diyebiliriz. Sadece ufak tefek tooltip düzenlemeleri ve sürelerin işlemesi için server tarafında almam gereken buildler kaldı. Sonrasında ince detaylar (yumurta yükleme animasyonu, X kapakçıklarının potansiyel tarafında doğru yönetilmesi, Potansiyel penceresinde ki UI tasarımının doğru şekilde yapılması, mini pet UI tarafında gerekli düzenlemeler gibi.) kalacak.

Sizi sıkmadan sistemin detaylı bir videosunuda bırakıyorum.



Tekrardan hatırlatmak isterim ki henüz tamamen bitmemiş bir sistem. Ufak tefek detaylar zaten videoda yakalamışsınızdır mesela potansiyel beceriler normalde yumurtanın süresine göre işliyor ancak henüz sunucu tarafından paket göndermini tamamlamadığından şu an yok ama oda kısa süre içerisinde gelecek.

GUI/UI konusunda daha uzman arkadaşlar yardımcı olmak veya incelemek isterse seve seve kabul ederim :)
 
Tekrardan selamlar,

Konuyu hortlatalım tam 10 gün sonra. Hem kendi bireysel işlerimden hemde bu sistemin biraz beni UI tarafında darlamasından dolayı ara vermiştim. Şimdi tekrardan devam ediyorum.

Ciddi bir ilerleme kaydettim. Ancak maalesef animasyon olayını beceremediğim için bunları atlamak zorunda kaldım tabi bu süreçte farklı yapay zeka modelleri denerken biraz daha içeriği bozmuş olabilirim bu sebeple animasyonsuz devam etme kararı aldım. İleride belki görsel olarak dahada geliştirilebilir veya görsel konusunda uzman arkadaşlarımız yardımcı olurum tamamlarım derse seve seve paylaşırım.

Şimdi elimizde artık resmen bir şampiyon pet sistemi var diyebiliriz. Sadece ufak tefek tooltip düzenlemeleri ve sürelerin işlemesi için server tarafında almam gereken buildler kaldı. Sonrasında ince detaylar (yumurta yükleme animasyonu, X kapakçıklarının potansiyel tarafında doğru yönetilmesi, Potansiyel penceresinde ki UI tasarımının doğru şekilde yapılması, mini pet UI tarafında gerekli düzenlemeler gibi.) kalacak.

Sizi sıkmadan sistemin detaylı bir videosunuda bırakıyorum.



Tekrardan hatırlatmak isterim ki henüz tamamen bitmemiş bir sistem. Ufak tefek detaylar zaten videoda yakalamışsınızdır mesela potansiyel beceriler normalde yumurtanın süresine göre işliyor ancak henüz sunucu tarafından paket göndermini tamamlamadığından şu an yok ama oda kısa süre içerisinde gelecek.

GUI/UI konusunda daha uzman arkadaşlar yardımcı olmak veya incelemek isterse seve seve kabul ederim :)


animasyon kısmı için örnek video vs var mı?
 
animasyon kısmı için örnek video vs var mı?


bu videoda 3:47 ile 4:03 arasında yumurtayı koyduğumuzda oluşan o turuncu barın dolma animasyonunu tam olarak yapamadım. UI kısmıda tam olarak tamamlanmış sayılmaz aslında. Bir çok farklı model kullanıp denemeler yaptığımdan dolayı biraz karıştı olaylar. Yaptığım animasyonlar yumurtanın ortasından başlıyor ve tam ortalanmıyor çoğu zaman.

İkinci sorun ise normalde şampiyon 1 ve evo4 seviyesinde ilk şampiyon pet skillinin ana UI tarafında X kapakçığının deletelenmesi gerekiyor ancak tam olarak onuda tamamlayabilmiş değilim.

dosyasını bıraktım. Gerekirse başka dosyalarda bırakabilirim.

Görsellerde animasyonu tek tek ekran görüntüsü alınmış hali

1759650759885.webp
1759650764445.webp
1759650767931.webp
1759650770899.webp
 


bu videoda 3:47 ile 4:03 arasında yumurtayı koyduğumuzda oluşan o turuncu barın dolma animasyonunu tam olarak yapamadım. UI kısmıda tam olarak tamamlanmış sayılmaz aslında. Bir çok farklı model kullanıp denemeler yaptığımdan dolayı biraz karıştı olaylar. Yaptığım animasyonlar yumurtanın ortasından başlıyor ve tam ortalanmıyor çoğu zaman.

İkinci sorun ise normalde şampiyon 1 ve evo4 seviyesinde ilk şampiyon pet skillinin ana UI tarafında X kapakçığının deletelenmesi gerekiyor ancak tam olarak onuda tamamlayabilmiş değilim.

dosyasını bıraktım. Gerekirse başka dosyalarda bırakabilirim.

Görsellerde animasyonu tek tek ekran görüntüsü alınmış hali

25963 eklentisini görüntüle25964 eklentisini görüntüle25965 eklentisini görüntüle25966 eklentisini görüntüle


görsel dosyasını bulamadım muhtemelen tek tek her bir frame için ayrı resim yapılmıştır bunları AniImageBox ile yükletip
SetEndFrameEvent ile yükleme bittikten sonra alttaki gride SetSkillSlot ile gösterebilirsin, 2018 rootundaki minigamelerde örnekler mevcut.
 
görsel dosyasını bulamadım muhtemelen tek tek her bir frame için ayrı resim yapılmıştır bunları AniImageBox ile yükletip
SetEndFrameEvent ile yükleme bittikten sonra alttaki gride SetSkillSlot ile gösterebilirsin, 2018 rootundaki minigamelerde örnekler mevcut.
Son unpack dosyalarında bulunan public_intro.dds dosyasında var aslında görseller
1759655307280.webp


Burada ki sarıyla işaretlediğim turuncu çizgiyi içeriyor.


Bu dosyaya kendi rootumda kullandığım etc kısmında ki UI dosyalarını ve GF'nin petPotentialWindow için kullandığı kısmıda ekledim.

Aslında dediğinizi yaptım ancak bir türlü beceremedim.
 
Son unpack dosyalarında bulunan public_intro.dds dosyasında var aslında görseller
25968 eklentisini görüntüle

Burada ki sarıyla işaretlediğim turuncu çizgiyi içeriyor.


Bu dosyaya kendi rootumda kullandığım etc kısmında ki UI dosyalarını ve GF'nin petPotentialWindow için kullandığı kısmıda ekledim.

Aslında dediğinizi yaptım ancak bir türlü beceremedim.

tek resimden çekiyorsa SetRenderingRect ile aşamalı olarak göstermen gerekiyor, benzer mantıkta çalışan bir şey yapmıştım SetRenderingRect parametrelerini değiştirerek bunun sağdan sola değil yukarıdan aşağıya giden halini yapman gerekiyor

Python:
Genişlet Daralt Kopyala
    def OnUpdate(self):
        # Update status image using rendering-rect every 1 second (reverse progress: right -> left)
        if not hasattr(self, "StatusImg") or not self.StatusImg:
            return

        now = app.GetTime()
        if now < getattr(self, "_nextScaleUpdate", 0.0):
            return
        self._nextScaleUpdate = now + 1.0

        if not self.StatusImg.IsShow():
            # Attempt to reshow if cooldown is active (recover from a transient hide)
            if getattr(self, "_cooldown_active", False):
                self.StatusBg.Show()
                self.StatusImg.Show()
                self.StatusImg.SetRenderingRect(0.0, 0.0, 0.0, 0.0)
            else:
                return

        end_ts = getattr(self, "_end_timestamp", 0)
        if end_ts <= 0:
            # No active cooldown; keep hidden to avoid flicker
            self.StatusImg.Hide()
            self.StatusBg.Hide()
            return

        remaining = end_ts - app.GetGlobalTimeStamp()
        if remaining <= 0:
            logging.error("VoteBuffWindow.OnUpdate: remaining <= 0")
            # Debounce immediate finish to avoid flicker right after activation or small clock skew
            if getattr(self, "_cooldown_active", False):
                elapsed = app.GetTime() - getattr(self, "_activated_at_time", 0.0)
                if elapsed < 2.5:
                    return
                self._finish_confirm_counter = getattr(self, "_finish_confirm_counter", 0) + 1
                if self._finish_confirm_counter < 2:
                    return
            # Cooldown finished, reflect immediately in UI state
            self.ReloadState(0)
            return

        total = getattr(self, "_total_duration", 0)
        if total <= 0:
            # Fallback: treat current remaining as total (first observation)
            total = remaining
            self._total_duration = total

        # Reverse progressbar: full at start -> 0 at end, crop from right
        fraction = float(remaining) / float(total) if total > 0 else 0.0
        if fraction < 0.0:
            fraction = 0.0
        elif fraction > 1.0:
            fraction = 1.0

        # Apply rendering rect: right = -1.0 + fraction, so full at 1.0 -> 0.0, empty at 0.0 -> -1.0
        self.StatusImg.SetRenderingRect(0.0, 0.0, -1.0 + fraction, 0.0)
 
En son bir moderatör tarafından düzenlenmiş:
Geri
Üst