Hikayeler

Reklam vermek için turkmmo@gmail.com

Metin2 Acemi at Üzerinde Vurma

DeveLOsi

Level 1
Üye
Katılım
19 May 2024
Konular
3
Mesajlar
16
Online süresi
71133s
Reaksiyon Skoru
3
Altın Konu
0
Başarım Puanı
18
TM Yaşı
1 Yıl 11 Ay 5 Gün
MmoLira
394
DevLira
0

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!

Merhaba arkadaşlar başlıkda belirttiğim gibi serverimde acemi at üzerinde vuruş sağlıyor görev yapmadan
25 level olup görevleri yapması için ne yapmam lazım
1130_013024.jpg
 
Merhaba arkadaşlar başlıkda belirttiğim gibi serverimde acemi at üzerinde vuruş sağlıyor görev yapmadan
25 level olup görevleri yapması için ne yapmam lazım Ekli dosyayı görüntüle 160069

➡️ Oyuncu “Acemi At” (Lvl 1 Horse) üzerindeyken normalde vuramaması gerekir.
➡️ Ama senin serverde görev almadan / at görevlerini yapmadan vurabiliyor ve
➡️ 25 level olunca görevlerin açılmasını istiyorsun.


Bu tamamen server side horse_config + quest kontrolü ile çözülen bir şeydir.



✅ 1) acemi at üzerinde saldırmayı engelleme (en önemli kısım)


Metin2’de saldırı engeli item_proto veya source tarafından kontrol edilir.


Kontrol etmen gereken dosya:

source/game/src/char.cpp


Aşağıdaki satırları ara:

if (IsRiding())
return false;


Bu satır yoksa, acemi at bile olsa saldırıya izin verir.


Doğrusunda şöyle olmalı:

if (GetMountLevel() == 1) // Acemi at için
{
ChatPacket(CHAT_TYPE_INFO, "Acemi at üzerindeyken saldıramazsın.");
return false;
}


Yani AttackCheck içinde acemi at kontrolü eklemen gerekiyor.




✅ 2) At görevlerinin 25 levelde açılmasını sağlama


Metin2 at görevleri “horse_quest” içinde level kontrolü ile çalışır.


Quest klasöründe bu dosyayı bul:

quest/horse_quest.quest


İçinde ilk görev için genelde şöyle bir koşul vardır:

when login or levelup with pc.get_level() >= 25 begin
set_state(start)
end


Eğer sende level şartı yoksa, oyuncu daha düşük seviyede görevi almadan da ata biniyor olabilir.


👉 Çözüm: 25 level şartını ekle.




✅ 3) ITEM_PROTO – Mount type kontrolü


Bazı P-Server kaynaklarında "acemi at" item’ının type = 28 (mount) yerine yanlış ayarlı olması saldırı yapmasına izin verir.


Kontrol et:

item_proto.txt


Acemi atın satırı şu şekilde olmalı:


  • wear flag → MOUNT
  • antiflag → NONE
  • flag → NONE

Yanlışsa düzelt.




🔧 4) Player mob_proto veya GM flag etkisi


Bazı corrupt source’larda:


  • GM olmayan oyuncular bile
  • At üzerindeyken
  • "Wolfman skill" veya "assassin dagger attack" tetikleyip vurabiliyor.

Bunu önlemek için source içinde:

if (IsRiding())
return false;


Bölümlerini mutlaka kontrol et.




📌 Sonuç (Kısa Özet)


SorunÇözüm
Acemi atla vuruyorchar.cpp içinde acemi at saldırı kontrolü ekle
Görevler 25 lvl’de başlamıyorhorse_quest.quest içine level kontrolü ekle
Item proto hatasıacemi at item_proto ayarlarını düzelt
GM/mount bugriding → attack engeli kontrolünü doğrula



Umarım Yardımcı ola bilmişimdir iyi forumlar dilerim.
 
➡️ Oyuncu “Acemi At” (Lvl 1 Horse) üzerindeyken normalde vuramaması gerekir.
➡️ Ama senin serverde görev almadan / at görevlerini yapmadan vurabiliyor ve
➡️ 25 level olunca görevlerin açılmasını istiyorsun.


Bu tamamen server side horse_config + quest kontrolü ile çözülen bir şeydir.




✅ 1) acemi at üzerinde saldırmayı engelleme (en önemli kısım)


Metin2’de saldırı engeli item_proto veya source tarafından kontrol edilir.


Kontrol etmen gereken dosya:

source/game/src/char.cpp


Aşağıdaki satırları ara:

if (IsRiding())
return false;


Bu satır yoksa, acemi at bile olsa saldırıya izin verir.


Doğrusunda şöyle olmalı:

if (GetMountLevel() == 1) // Acemi at için
{
ChatPacket(CHAT_TYPE_INFO, "Acemi at üzerindeyken saldıramazsın.");
return false;
}


Yani AttackCheck içinde acemi at kontrolü eklemen gerekiyor.





✅ 2) At görevlerinin 25 levelde açılmasını sağlama


Metin2 at görevleri “horse_quest” içinde level kontrolü ile çalışır.


Quest klasöründe bu dosyayı bul:

quest/horse_quest.quest


İçinde ilk görev için genelde şöyle bir koşul vardır:

when login or levelup with pc.get_level() >= 25 begin
set_state(start)
end


Eğer sende level şartı yoksa, oyuncu daha düşük seviyede görevi almadan da ata biniyor olabilir.


👉 Çözüm: 25 level şartını ekle.





✅ 3) ITEM_PROTO – Mount type kontrolü


Bazı P-Server kaynaklarında "acemi at" item’ının type = 28 (mount) yerine yanlış ayarlı olması saldırı yapmasına izin verir.


Kontrol et:

item_proto.txt


Acemi atın satırı şu şekilde olmalı:



  • wear flag → MOUNT
  • antiflag → NONE
  • flag → NONE

Yanlışsa düzelt.




🔧 4) Player mob_proto veya GM flag etkisi


Bazı corrupt source’larda:


  • GM olmayan oyuncular bile
  • At üzerindeyken
  • "Wolfman skill" veya "assassin dagger attack" tetikleyip vurabiliyor.

Bunu önlemek için source içinde:

if (IsRiding())
return false;


Bölümlerini mutlaka kontrol et.





📌 Sonuç (Kısa Özet)


SorunÇözüm
Acemi atla vuruyorchar.cpp içinde acemi at saldırı kontrolü ekle
Görevler 25 lvl’de başlamıyorhorse_quest.quest içine level kontrolü ekle
Item proto hatasıacemi at item_proto ayarlarını düzelt
GM/mount bugriding → attack engeli kontrolünü doğrula



Umarım Yardımcı ola bilmişimdir iyi forumlar dilerim.
öncelikle zaman ayırıp ilgilendiğin için çok teşekkür ederim
size zahmet bakabilirmisiniz eksikleri tamamlama şansınız varmı
 

Ekli dosyalar

  • charcpp.rar
    147.1 KB · Görüntüleme: 0

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

Geri
Üst