Fethi Polat 1
Fethi Polat
xranzei 1
xranzei
Bvural41 1
Bvural41
kralhakan2009 1
kralhakan2009
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Vahsi Uzman 1
Vahsi Uzman
Cannn6161 1
Cannn6161
B 1
berione65
sen272 1
sen272
Mt2Hizmet 1
Mt2Hizmet
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Cevaplandı Menzilli kükreme

  • Konuyu başlatan Konuyu başlatan mertcanayhan0606
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 13
  • Görüntüleme Görüntüleme 320

mertcanayhan0606

"Yarın ölecekmiş gibi yaşa."
Telefon Numarası Onaylanmış Üye
Uzman
Katılım
22 Mar 2024
Konular
55
Mesajlar
476
Çözüm
6
Online süresi
24d 20h
Reaksiyon Skoru
219
Altın Konu
0
Başarım Puanı
81
Yaş
28
MmoLira
9,214
DevLira
18
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Ağalar bu şamanın kükreme skilini menzili hale nasıl getiriz istediği yere kükreme atıyor ya
 
Çözüm
Ticaret - 0%
0   0   0
Ağalar bu şamanın kükreme skilini menzili hale nasıl getiriz istediği yere kükreme atıyor ya
Şamanın Kükreme (Roar) skillinin “istediği yere atma” (free target) özelliğini kapatarak sadece menzili kadar, ileri doğru çalışmasını istiyorsan, bunu sadece skill_proto ile değil, server source (game/src) tarafında düzeltmen gerekiyor.


Bu durum PVP kaynaklarında çok sık görülür.
✔ Çünkü Roar, “area (alan)” tipi skildir ve client tarafından “free target” gibi kullanılabilir.


Aşağıda tamamen net çözümü veriyorum.




✅ 1) Amaç Ne?​


Kükreme skili şöyle çalışsın:


  • Oyuncu sadece menzil içinde kükreme atsın
  • Fare ile istediği uzak noktaya tıklayıp atamasın...
Animasyonun msasında düzenleme yaptınız mı hocam bir de öyle deneyin derim 😊
 
Birazdan inşallah onu denicem banada çözüm o gibi geliyor haber dâr edeceğim hocam
 
Ağalar bu şamanın kükreme skilini menzili hale nasıl getiriz istediği yere kükreme atıyor ya
Şamanın Kükreme (Roar) skillinin “istediği yere atma” (free target) özelliğini kapatarak sadece menzili kadar, ileri doğru çalışmasını istiyorsan, bunu sadece skill_proto ile değil, server source (game/src) tarafında düzeltmen gerekiyor.


Bu durum PVP kaynaklarında çok sık görülür.
✔ Çünkü Roar, “area (alan)” tipi skildir ve client tarafından “free target” gibi kullanılabilir.


Aşağıda tamamen net çözümü veriyorum.




✅ 1) Amaç Ne?​


Kükreme skili şöyle çalışsın:


  • Oyuncu sadece menzil içinde kükreme atsın
  • Fare ile istediği uzak noktaya tıklayıp atamasın
  • Şamanın önündeki koni/ dairesel alana etki etsin

Yani tam olarak Charge / Ara saldırı gibi çalışacak.




📍 2) Yapılması Gereken (Temel Mantık)​


Metin2’de skilin hedef tipi skill_proto üzerinden gelir,
ama davranış game/src/char_skill.cpp içinde belirlenir.


Kükreme şu şekilde işlenir:

SKILL_TONGUE_STRIKE (şaman kükreme)


kodda ismi genelde:

SKILL_TONGUE_STRIKE // roar


veya:

SKILL_DRAGON_ROAR


Kaynaklarda değişik olabilir.


Bu skil çoğunlukla TARGET_LOCATION (konum hedefli) çalışır.


Senin istediğin ise:


👉 TARGET_DIRECTION veya TARGET_RANGE tipi olsun.
Yani oyuncu tıklamasın → karakterin yönüne göre vursun.




🔧 3) Skill Proto Düzenlemesi (Ama YETERLİ DEĞİL)​


skill_proto.txt veya skill_proto SQL'de:


  • type veya target_type değerini kontrol et.

Muhtemelen şu şekildedir:

target_type : 4 (location / ground)


Bunu şu türlerden birine çekebilirsin:

1 = target (karakter)
2 = self (kendine)
3 = forward (yön alanı)


Roar için genelde 3 forward area en uygunudur.


Ama TEK BAŞINA YETMEZ.




⚠ 4) Asıl Çözüm: game/src/char_skill.cpp düzenleme​


Şamanın kükremesi şu fonksiyonda işlenir:

bool CHARACTER::UseSkill(...)


veya:

int CSkillManager::ApplySkill(...)


Kükreme skill ID'sini bulup şunu değiştiriyoruz:


❌ Şu anki hatalı yapı:​

// Konum hedefli kullanım
GetTargetPosition(...)
Hasar hesapla...


✔ Olması gereken:​

// Yön + menzil alanı hesaplama
GetMultiTargetVictim(CHARACTER, direction, range);


Yani kod yaklaşık şu hale getirilir:

if (skill_id == SKILL_TONGUE_STRIKE)
{
int range = GetSkillRange(skill_id);
float rot = GetRotation(); // karakterin baktığı yön

std::vector<LPCHARACTER> targets;
FetchAttackTargets(targets, this, range, rot);

for (auto & ch : targets)
Hit(ch); // normal skill damage hesaplama
return true;
}


Böylece:


✔ İleri doğru menzil alanına vurur
✔ Tıklanan yere gitmez
✔ Free-target kalkar
✔ Gerçek koni veya dairesel alan gibi etkiler




🧪 5) Eğer sadece CLIENT tarafını kapatmak istersen​


client/UI tarafında şunu kapatabilirsin:


root/uiSkill.py → skill target tipi UI’ı.


Ama bu tek başına yetmez, çünkü server hala skill’i location olarak işleyebilir.
Yani “skill görünüşü” düzelir, ama arka planda yine hedef noktaya gider.


Doğru çözüm = server + proto.




📌 6) Sana birebir tam çözümü verebilmem için:​


Şunlardan birini gönderirsen tam kod yamasını hazırlayabilirim:


  • skill_proto.txt içinde Kükreme satırı
  • skill ID’si (ör: 131, 132 vs. kaynaklara göre değişir)
  • char_skill.cpp içindeki ilgili bölüm
  • veya sadece kullandığın source sürümünü söyle (Martysama 40k? Mainline? Daroo? Wolfman dahil mi?)

İstersen dosyaları at, düzenleyip en kısa haliyle göndereyim.
 
Çözüm
Şamanın Kükreme (Roar) skillinin “istediği yere atma” (free target) özelliğini kapatarak sadece menzili kadar, ileri doğru çalışmasını istiyorsan, bunu sadece skill_proto ile değil, server source (game/src) tarafında düzeltmen gerekiyor.


Bu durum PVP kaynaklarında çok sık görülür.
✔ Çünkü Roar, “area (alan)” tipi skildir ve client tarafından “free target” gibi kullanılabilir.


Aşağıda tamamen net çözümü veriyorum.




✅ 1) Amaç Ne?​


Kükreme skili şöyle çalışsın:


  • Oyuncu sadece menzil içinde kükreme atsın
  • Fare ile istediği uzak noktaya tıklayıp atamasın
  • Şamanın önündeki koni/ dairesel alana etki etsin

Yani tam olarak Charge / Ara saldırı gibi çalışacak.




📍 2) Yapılması Gereken (Temel Mantık)​


Metin2’de skilin hedef tipi skill_proto üzerinden gelir,
ama davranış game/src/char_skill.cpp içinde belirlenir.


Kükreme şu şekilde işlenir:

SKILL_TONGUE_STRIKE (şaman kükreme)


kodda ismi genelde:

SKILL_TONGUE_STRIKE // roar


veya:

SKILL_DRAGON_ROAR


Kaynaklarda değişik olabilir.


Bu skil çoğunlukla TARGET_LOCATION (konum hedefli) çalışır.


Senin istediğin ise:


👉 TARGET_DIRECTION veya TARGET_RANGE tipi olsun.
Yani oyuncu tıklamasın → karakterin yönüne göre vursun.




🔧 3) Skill Proto Düzenlemesi (Ama YETERLİ DEĞİL)​


skill_proto.txt veya skill_proto SQL'de:


  • type veya target_type değerini kontrol et.

Muhtemelen şu şekildedir:

target_type : 4 (location / ground)


Bunu şu türlerden birine çekebilirsin:

1 = target (karakter)
2 = self (kendine)
3 = forward (yön alanı)


Roar için genelde 3 forward area en uygunudur.


Ama TEK BAŞINA YETMEZ.




⚠ 4) Asıl Çözüm: game/src/char_skill.cpp düzenleme​


Şamanın kükremesi şu fonksiyonda işlenir:

bool CHARACTER::UseSkill(...)


veya:

int CSkillManager::ApplySkill(...)


Kükreme skill ID'sini bulup şunu değiştiriyoruz:


❌ Şu anki hatalı yapı:​

// Konum hedefli kullanım
GetTargetPosition(...)
Hasar hesapla...


✔ Olması gereken:​

// Yön + menzil alanı hesaplama
GetMultiTargetVictim(CHARACTER, direction, range);


Yani kod yaklaşık şu hale getirilir:

if (skill_id == SKILL_TONGUE_STRIKE)
{
int range = GetSkillRange(skill_id);
float rot = GetRotation(); // karakterin baktığı yön

std::vector<LPCHARACTER> targets;
FetchAttackTargets(targets, this, range, rot);

for (auto & ch : targets)
Hit(ch); // normal skill damage hesaplama
return true;
}


Böylece:


✔ İleri doğru menzil alanına vurur
✔ Tıklanan yere gitmez
✔ Free-target kalkar
✔ Gerçek koni veya dairesel alan gibi etkiler




🧪 5) Eğer sadece CLIENT tarafını kapatmak istersen​


client/UI tarafında şunu kapatabilirsin:


root/uiSkill.py → skill target tipi UI’ı.


Ama bu tek başına yetmez, çünkü server hala skill’i location olarak işleyebilir.
Yani “skill görünüşü” düzelir, ama arka planda yine hedef noktaya gider.


Doğru çözüm = server + proto.




📌 6) Sana birebir tam çözümü verebilmem için:​


Şunlardan birini gönderirsen tam kod yamasını hazırlayabilirim:


  • skill_proto.txt içinde Kükreme satırı
  • skill ID’si (ör: 131, 132 vs. kaynaklara göre değişir)
  • char_skill.cpp içindeki ilgili bölüm
  • veya sadece kullandığın source sürümünü söyle (Martysama 40k? Mainline? Daroo? Wolfman dahil mi?)

İstersen dosyaları at, düzenleyip en kısa haliyle göndereyim.
Hocam sen bir kralsın 🥰
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst