21xx source ve db hakkında bir iki sorun.

Kayıtlı Üye
Katılım
31 Mart 2017
Mesajlar
82
Merhaba arkadaşlar öncelikle herkese iyi geceler diliyorum.

Elimde bir source vardı ve ufak tefek düzenlemelerle biraz olsun adam etmeyi başardım.

Lakin bu source ile farm server açamayacağım için 62/1 ardream pk server yapmaya karar verdim.



Benim öncelikli 1-2 sıkıntım var

Birincisi choatic generatorde gem kırdırınca item vermiyor genarator açıkken gem sayısı düşüyor ama genaratoru kapatında eski sayısına geri dönüyor. Çözemedim kutu kırdırmada bir problem yok red green blue kutular sorunsuz kırdırılıyor.

İkinci sorunum ise elimde olan benim işimi görebilecek tarzda bir anti var bunu nasıl sourceme yedireceğimi bilmiyorum.

Son olarakta en önemlisi oyuna 2 adet box koyup bunları sadece pus üzerinden satıp kırdırabilecekleri bir npc yapmak istiyorum içerisinden oyun içi benim belirleyeceğim itemlerin çıkmasını istiyorum

Yardımcı olan olursa çok teşekkür ederim şimdiden
 
Kayıtlı Üye
Katılım
28 Ağustos 2014
Mesajlar
739
Cevap: 21xx source ve db hakkında bir iki sorun.



1. Sorun için ;



Chaotic generator sourcelerinde SendAnvilRequest fonksiyonu altında çalışır genelde. bu fonksiyon 2 değişken alır ve geriye bir değer döndürmez. aldığı iki değişkenden ilki npcid diğeri ise btype değeridir. npcid anladığın gibi exchange işleminin yapılacağı npcnin id numarasıdır. btype ise databasede kayıtlı olan bu npcnin btype değeridir. chaotic için örnek gösterirsek npcid 603 btype değeri 162'dir. Bu aşamaları atladıktan sonra artık sıra item alışverişine geliyor burada ise item_exchange tablosu devreye giriyor. 603 numaralı npcye ait item exchangeler burada kayıt altına alınıyor yani. Bu tabloyu kendin doldurmanı tavsiye ederim.



-> Gelelim sorunsuz chaotic sourcelerine



global.h enum NpcType bloğuna bunları eklemen gerekli



Burada bulunan gizli verileri görebilmeniz için önce yanıt vermelisiniz.


npchandler.cpp NpcEvent fonksiyonun içindeki switch (pNpc->GetType()) durumlarının altına bu case eklemen gerekli ;

Burada bulunan gizli verileri görebilmeniz için önce yanıt vermelisiniz.


user.cpp SendAnvilRequest fonksiyonu yok ise bunuda eklemelisin



Burada bulunan gizli verileri görebilmeniz için önce yanıt vermelisiniz.


Artık sourclerle işin bitti sıra geldi databaseye



Aşağıdaki verdiğim kodları sql'de uygula.



1. KOD ( Chaotic Generator ekliyoruz )



Burada bulunan gizli verileri görebilmeniz için önce yanıt vermelisiniz.
Burada bulunan gizli verileri görebilmeniz için önce yanıt vermelisiniz.


2. KOD (item_exchange tablosuna takas için bir item ekliyoruz)



Burada bulunan gizli verileri görebilmeniz için önce yanıt vermelisiniz.
Burada bulunan gizli verileri görebilmeniz için önce yanıt vermelisiniz.


NOT : Bir adet blue gem için exchange tablosuna verileri ekledik. Dikkat bu kodu kendine örnek alabilirsin diğer eklemek istediğin itemler için.



Tablo açıklamalarının bir kısmı ;

Burada bulunan gizli verileri görebilmeniz için önce yanıt vermelisiniz.


2. Sorun için ;



Elinde var olan anti-cheatin sourclerine kendi fileslerine entegre etmen gerekir yani paket alışverişi sağlaman gerekir. Bunun içinde knightonline.exe ye assmbly ile müdahale etmen gerekir. Bu konu oldukça karışık internetten ollydbg assmbly,entry point ve exe'ye dll inject etme konularını araştırıp buradan edindiğin bilgiler ile kendini hazırlamalısın.



Son sorun ;



Anladığım kadarıyla örneğin mavi kutu gibi bir item yapmak ve bu itemi npc'de kırdırıp içinden istediğin itemlerin düşmesini istiyorsun. Bunu yapman için öncelikle örneğin mavi kutuyu örnek al kendine hemen item tablosundan mavi kutunun verilerini kopyala ve atıyorum item numarası 3001000 olsun sen yeni bir item gibi 3002000 olarak veri ekle ve adınıda sarı kutu koy. Ardından tbl editör ile item_org_us tbl'sini aç ve aynı şekilde mavi kutuya ait olan tüm verileri kopyalayıp sadece item numarasını 3002000 olarak değiştir kaydet. Tebrikler artık yeni itemin hazır. Sıra geldi bunu npcye eklemeye. Hemen database'de bulunan k_npc tablosunda bu tarz bi npcyi sec ve verileri kopyalayıp tekrar farklı bir npcid ile kaydet. Tebrikler npc hazır. Şimdi bu npcyi yerleştirmeye geldi sıra kopyaladığın npcnin k_npcpos tablosunda bulunan verilerini tekrar değiştirip istediğin kordinatlara göre yapıştır. Tebrikler npc artık sahalarda. Peki bu npc nasıl çalışacak ? Npcnin çalışması için database'de yapıcağımız son şey,quest_helper tablosuna verileri eklemek.



Örnek olarak ;



Burada bulunan gizli verileri görebilmeniz için önce yanıt vermelisiniz.


Dikkat etmen gereken yer son kısımdaki 3326_npexchange.lua kısmı. Burayı istediğin isimde .lua uzantılı olarak yapabilirsin.



Hemen item exchange tablosuna yukarıda anlattığım gibi bu yeni item için exchange verilerini giriyorsun ve databasede işimiz bitiyor.



Artık fileslerdeki questlerimize geldi sıra ;



biraz önce kaydettiğin .lua uzantılı dosyayı quest klasörünün içinde oluşturuyorsun. gerekli lua kodlarını giriyorsun.



İtem_exchange için örnek lua kodu ;



Burada bulunan gizli verileri görebilmeniz için önce yanıt vermelisiniz.


Tüm kodları indirmek için ;



Burada bulunan gizli verileri görebilmeniz için önce yanıt vermelisiniz.







Güle güle kullanman dileği ile.

 
Kayıtlı Üye
Katılım
30 Ağustos 2012
Mesajlar
762
Cevap: 21xx source ve db hakkında bir iki sorun.



Demir Böyle CAlısırsa Pas Tutmaz. :)
 
Kayıtlı Üye
Katılım
31 Mart 2017
Mesajlar
82
Cevap: 21xx source ve db hakkında bir iki sorun.



Demir abi şimdi anladım mantığı ama bi yerde kafam basmadı desem yeridir.

Bu databeseye item ex den sen sadece tek bir gem için örnek verdin herhalde ben her gem ve fragment için ayrı ayrı giricem dimi o kodları
 
Kayıtlı Üye
Katılım
28 Ağustos 2014
Mesajlar
739
Cevap: 21xx source ve db hakkında bir iki sorun.



Demir abi şimdi anladım mantığı ama bi yerde kafam basmadı desem yeridir.

Bu databeseye item ex den sen sadece tek bir gem için örnek verdin herhalde ben her gem ve fragment için ayrı ayrı giricem dimi o kodları



Örneğin blue gemden 50 tane item düşecek ;



50 adet farklı blue gem drobu girmen gerekir

diğerleri içinde aynı şekilde.
 
Kayıtlı Üye
Katılım
31 Mart 2017
Mesajlar
82
Cevap: 21xx source ve db hakkında bir iki sorun.



abi db hata veriyor kodu kabul etmiyor query'de :(
 
Kayıtlı Üye
Katılım
28 Ağustos 2014
Mesajlar
739
Cevap: 21xx source ve db hakkında bir iki sorun.



Hatayı yazar mısın ?
 
Kayıtlı Üye
Katılım
31 Mart 2017
Mesajlar
82
Cevap: 21xx source ve db hakkında bir iki sorun.



Msg 213, Level 16, State 1, Line 1

Column name or number of supplied values does not match table definition.





delete fromda vermedi bu hatayı ekleme kodunda verdi geri



şu kodda yani

insert into k_npc values (603 , 'Chaotic generator' , 100 , 30200 , 0 , 0 , 1 , 0 , 162 , 1 , 1 , 1 , 0 , 100 , 0 , 0 , 700000 , 0 , 0 , 15000 , 642 , 842 , 0 , 1000 , 250 , 0 , 0 , 1000 , 0 , 0 , 0 , 0 , 30000 , 30000 , 30000 , 30000 , 30000 , 30000 , 30000 , 100 , 5 , 5 , 5 , 0 , 0 , 0 , 0)

delete from k_npcpos where NpcID = 603

insert into k_npcpos values (21 , 603 , 100 , 0 , 0 , 0 , 0 , 794 , 557 , 794 , 557 , 794 , 557 , 794 , 557 , 1 , 10 , 0 , 0 , 'NULL')
 
Kayıtlı Üye
Katılım
28 Ağustos 2014
Mesajlar
739
Cevap: 21xx source ve db hakkında bir iki sorun.



Kullandığın databasedeki k_npc tablosundaki sütun sayısı ile benim sana gönderdiğim koddaki sütun sayısı farklı olduğundan dolayı bu hatayı alıyorsun. Kendi db'ne göre uyarlaman gerekli bunu
 
Kayıtlı Üye
Katılım
31 Mart 2017
Mesajlar
82
Cevap: 21xx source ve db hakkında bir iki sorun.



938 sutün var neresini değiştiricem abi
 
Kayıtlı Üye
Katılım
31 Mart 2017
Mesajlar
82
Cevap: 21xx source ve db hakkında bir iki sorun.



45 sutün abi pardon :) cahilliğime ver. kodda 46 sütun var nasıl düzeltirim
 
Üst Alt
Reklam
Reklam