C 1
chengdu
xranzei 1
xranzei
zendor2 1
zendor2
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Almira2 1
Almira2
romegames 1
romegames
D 1
delimuratt
melankolıa18 1
melankolıa18
shrpnl 1
shrpnl
Fethi Polat 1
Fethi Polat
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Cevaplanmadı 1 level at üzerinde vurma

DarkLions

Level 4
TM Üye
Katılım
6 Mar 2014
Konular
44
Mesajlar
299
Çözüm
1
Online süresi
1mo 25d
Reaksiyon Skoru
58
Altın Konu
0
TM Yaşı
12 Yıl 3 Ay 4 Gün
Başarım Puanı
126
MmoLira
8,006
DevLira
0
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!

merhabalar herkeze iyi günler dilerim 1 level at üzerinde vurmayı nasıl aktive edebilirim yardımcı olabilirmisiniz ?
 
Merhaba,

İstediğiniz özellik, oyunun temel bir mekaniği olduğu için sunucu kaynak kodları (server source) üzerinden bir düzenleme gerektirir. Eğer kaynak kodlarına erişiminiz varsa, aşağıdaki adımları izleyerek at üzerinde vuruş için gereken seviye sınırını kaldırabilirsiniz:

Adım 1: char_battle.cpp Dosyasını AçınSunucu kaynak kodlarınızın içinde, genellikle game/src veya benzeri bir dizinde bulunan char_battle.cpp dosyasını bir kod editörüyle açın. Bu dosya, karakterlerin dövüş ve beceri kullanma mekaniklerini yönetir.

Adım 2: İlgili Kodu BulunDosyanın içinde, at seviyesini kontrol eden bir kod bloğu aratın. Bu kod, sunucu dosyalarına göre küçük farklılıklar gösterebilir ama mantık olarak şuna benzer bir satır aramalısınız (CTRL+F ile aratabilirsiniz):

if (pkChar->GetHorseLevel() < 11)

veya

if (GetHorseLevel() < 11)

Bu satır, "Eğer karakterin at seviyesi 11'den küçükse, şunu yapma" anlamına gelir.

Adım 3: Kodu DüzenleyinÇözüm için yapmanız gereken tek şey, bu kontrol satırındaki 11 sayısını 1 olarak değiştirmektir.

Eski Hatalı Kod:if (pkChar->GetHorseLevel() < 11)

Olması Gereken Doğru Kod:if (pkChar->GetHorseLevel() < 1)

Bu değişikliği yaptıktan sonra dosyayı kaydedin.

Adım 4: Sunucuyu Derleyin (Compile)Bu değişikliğin aktif olması için sunucu kaynak kodlarınızı yeniden derlemeniz (compile/build) ve oluşan yeni game dosyasını sunucunuza yüklemeniz gerekmektedir. Sunucuyu yeniden başlattığınızda, artık 1. seviye at üzerinde vuruş yapılabilir olacaktır.

Umarım yardımcı olmuştur. İyi çalışmalar.
 
Merhaba,

İstediğiniz özellik, oyunun temel bir mekaniği olduğu için sunucu kaynak kodları (server source) üzerinden bir düzenleme gerektirir. Eğer kaynak kodlarına erişiminiz varsa, aşağıdaki adımları izleyerek at üzerinde vuruş için gereken seviye sınırını kaldırabilirsiniz:

Adım 1: char_battle.cpp Dosyasını AçınSunucu kaynak kodlarınızın içinde, genellikle game/src veya benzeri bir dizinde bulunan char_battle.cpp dosyasını bir kod editörüyle açın. Bu dosya, karakterlerin dövüş ve beceri kullanma mekaniklerini yönetir.

Adım 2: İlgili Kodu BulunDosyanın içinde, at seviyesini kontrol eden bir kod bloğu aratın. Bu kod, sunucu dosyalarına göre küçük farklılıklar gösterebilir ama mantık olarak şuna benzer bir satır aramalısınız (CTRL+F ile aratabilirsiniz):

if (pkChar->GetHorseLevel() < 11)

veya

if (GetHorseLevel() < 11)

Bu satır, "Eğer karakterin at seviyesi 11'den küçükse, şunu yapma" anlamına gelir.

Adım 3: Kodu DüzenleyinÇözüm için yapmanız gereken tek şey, bu kontrol satırındaki 11 sayısını 1 olarak değiştirmektir.

Eski Hatalı Kod:if (pkChar->GetHorseLevel() < 11)

Olması Gereken Doğru Kod:if (pkChar->GetHorseLevel() < 1)

Bu değişikliği yaptıktan sonra dosyayı kaydedin.

Adım 4: Sunucuyu Derleyin (Compile)Bu değişikliğin aktif olması için sunucu kaynak kodlarınızı yeniden derlemeniz (compile/build) ve oluşan yeni game dosyasını sunucunuza yüklemeniz gerekmektedir. Sunucuyu yeniden başlattığınızda, artık 1. seviye at üzerinde vuruş yapılabilir olacaktır.

Umarım yardımcı olmuştur. İyi çalışmalar.
öncelikle değerli cevabınız için teşekkür ederim fakat belirttiğiniz kod satırı belirtilen dosyada bulunmamaktadır.
 
Öncelikle değerli geri bildiriminiz için teşekkürler. Kullandığınız sunucu dosyalarının farklı bir yapıda olduğu anlaşılıyor. Lütfen aşağıdaki alternatif yöntemleri deneyin:

Yöntem 1: Alternatif Anahtar Kelimelerle Arama


char_battle.cpp dosyası içinde GetHorseLevel bulunamadıysa, aynı işlevi gören farklı isimlendirilmiş kodlar olabilir. Lütfen dosya içinde (CTRL+F ile) aşağıdaki kelimeleri tek tek aratın:

  • GetHorseData
  • GetHorse
  • IsRiding veya IsOnHorse
  • HORSE_LEVEL (Büyük harflerle bir sabit olarak tanımlanmış olabilir)
  • Sadece 11 sayısını aratın. Bu sizi doğrudan seviye kontrolünün yapıldığı satırlara götürebilir. Orada at ile ilgili bir kontrol olup olmadığına bakın.

Yöntem 2: Farklı Kod Bloklarını Kontrol Etme


Aşağıda, farklı sunucu dosyalarında karşılaşılan bazı kod örnekleri var. Lütfen bu bloklardan birinin kendi dosyasında olup olmadığını kontrol etsin:

Örnek A:

[CODE title="C++"]if (ch->IsOnHorse() && ch->GetHorseLevel() < 11)
{
// Hata mesajı veya vuruşu engelleme kodu
return;
}[/CODE]

Bu yapıyı bulursa, 11'i 1 yapması yeterlidir.

Örnek B:
[CODE title="C++"]if (pkChar->GetHorseData() && pkChar->GetHorseData()->dwLevel < 11)
{
// Hata mesajı veya vuruşu engelleme kodu
return;
}[/CODE]

Burada da 11'i 1 olarak değiştirmeli.

Örnek C: Bazen bu kontrol, vuruş fonksiyonunun en başında yapılır. CInputMain::Attack gibi bir fonksiyonun içinde char.cpp veya input_main.cpp dosyalarında olabilir.

Yöntem 3: Farklı Dosyaları Kontrol Etme


Eğer bu mantık char_battle.cpp içinde değilse, büyük ihtimalle aşağıdaki dosyalardan birindedir:

  1. char.cpp: Karakterin genel özelliklerinin ve kontrollerinin yapıldığı ana dosyalardan biridir.
  2. horse_manager.cpp: Özellikle atlarla ilgili tüm fonksiyonların toplandığı bir dosya olabilir. Bu dosyada Attack veya Skill ile ilgili bir kontrol arayabilir.

Eğer Hiçbiri İşe Yaramazsa: En Önemli Soru


Eğer yukarıdaki adımların hiçbiri sonuç vermezse, sorunun kökünü bulmak için arkadaşına şu soruyu sorman gerekiyor:

"Kullandığınız sunucu dosyalarının adı nedir? (Ör: Martysama, Owsap, Mainline, Fource vb.)"

Bu bilgi, sorunun tam olarak hangi dosyada ve hangi satırda olduğunu nokta atışı bulmamızı sağlar.
 
Öncelikle değerli geri bildiriminiz için teşekkürler. Kullandığınız sunucu dosyalarının farklı bir yapıda olduğu anlaşılıyor. Lütfen aşağıdaki alternatif yöntemleri deneyin:

Yöntem 1: Alternatif Anahtar Kelimelerle Arama


char_battle.cpp dosyası içinde GetHorseLevel bulunamadıysa, aynı işlevi gören farklı isimlendirilmiş kodlar olabilir. Lütfen dosya içinde (CTRL+F ile) aşağıdaki kelimeleri tek tek aratın:
  • GetHorseData
  • GetHorse
  • IsRiding veya IsOnHorse
  • HORSE_LEVEL (Büyük harflerle bir sabit olarak tanımlanmış olabilir)
  • Sadece 11 sayısını aratın. Bu sizi doğrudan seviye kontrolünün yapıldığı satırlara götürebilir. Orada at ile ilgili bir kontrol olup olmadığına bakın.

Yöntem 2: Farklı Kod Bloklarını Kontrol Etme


Aşağıda, farklı sunucu dosyalarında karşılaşılan bazı kod örnekleri var. Lütfen bu bloklardan birinin kendi dosyasında olup olmadığını kontrol etsin:

Örnek A:

[CODE title="C++"]if (ch->IsOnHorse() && ch->GetHorseLevel() < 11)
{
// Hata mesajı veya vuruşu engelleme kodu
return;
}[/CODE]

Bu yapıyı bulursa, 11'i 1 yapması yeterlidir.

Örnek B:
[CODE title="C++"]if (pkChar->GetHorseData() && pkChar->GetHorseData()->dwLevel < 11)
{
// Hata mesajı veya vuruşu engelleme kodu
return;
}[/CODE]

Burada da 11'i 1 olarak değiştirmeli.

Örnek C: Bazen bu kontrol, vuruş fonksiyonunun en başında yapılır. CInputMain::Attack gibi bir fonksiyonun içinde char.cpp veya input_main.cpp dosyalarında olabilir.


Yöntem 3: Farklı Dosyaları Kontrol Etme


Eğer bu mantık char_battle.cpp içinde değilse, büyük ihtimalle aşağıdaki dosyalardan birindedir:

  1. char.cpp: Karakterin genel özelliklerinin ve kontrollerinin yapıldığı ana dosyalardan biridir.
  2. horse_manager.cpp: Özellikle atlarla ilgili tüm fonksiyonların toplandığı bir dosya olabilir. Bu dosyada Attack veya Skill ile ilgili bir kontrol arayabilir.

Eğer Hiçbiri İşe Yaramazsa: En Önemli Soru


Eğer yukarıdaki adımların hiçbiri sonuç vermezse, sorunun kökünü bulmak için arkadaşına şu soruyu sorman gerekiyor:

"Kullandığınız sunucu dosyalarının adı nedir? (Ör: Martysama, Owsap, Mainline, Fource vb.)"

Bu bilgi, sorunun tam olarak hangi dosyada ve hangi satırda olduğunu nokta atışı bulmamızı sağlar.
Kullandığım Yapı mainline dediiğiniz gibi char.cpp de

if (GetHorseLevel() > 0)
{
UpdateHorseDataByLogoff (t->logoff_interval);
}

thecore_memcpy (m_aiPremiumTimes, t->aiPremiumTimes, sizeof (t->aiPremiumTimes));

m_dwLogOffInterval = t->logoff_interval;

sys_log (0, "PLAYER_LOAD: %s PREMIUM %d %d, LOGGOFF_INTERVAL %u PTR: %p", t->name, m_aiPremiumTimes[0], m_aiPremiumTimes[1], t->logoff_interval, this);

if (GetGMLevel() != GM_PLAYER)
{
LogManager::instance().CharLog (this, GetGMLevel(), "GM_LOGIN", "");
sys_log (0, "GM_LOGIN(gmlevel=%d, name=%s(%d), pos=(%d, %d)", GetGMLevel(), GetName(), GetPlayerID(), GetX(), GetY());
}

Bu Şekilde bir satır var burayı mı düzenlemem gerekir 0 olan kısmı 1 mi yapmalıyım ?
 

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

Geri
Üst