HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
Selamlar, Forumda çok aradım ve bulamadım bir türlü bir npcden farklı kategoriler oluşturup cube açma sistemini 3 gun uğraştıktan sonra olayı çözdüm paylaşmak istiyorum ihtiyacı olan yararlansın.
Sistem bu;
Şimdi benim bulduğum çözüm yolu alternatif cube sistemi vs değil ufak bi yanıltma olcak yaptığım şu aslında, bir npcden bir quest fonksiyonu yardımıyla herhangi başka bir npcnın cubesine ulaşmayı göstericem bu sayede mesala bir npcye tıkladığınızda ilk seçenekten o npcnın kendi cubesini 2. secenekten baska bir npcnin cubesini 3. secenekten baska vs vs.
Jae-Seon Kim adlı npcden Yu-Hwanda'a tanımlı olan (cube.txt içinde Yu-Hwan'ın vnumunun kullanıldığı kısımlar) item listesini yani cube penceresini açıyorum burda;
Şimdi bu cube sisteminin olayı, quest içinde command("cube open") fonksiyonunu kullandığımız npcnin üzerinden geçiyor,
biz npcye tıkladığımız an game source icerisinde o npcyi bir obje olarak alıp vnumunu cube.txt içindeki vnumlarla karşılaştırıp sonradan kullanmak için itemleri listeliyor vs.
Npcye tıkladığımız andaki o npcnin id si game sourceye gidiyor ve bir sabit değişkene atanıyor
ben de bir quest fonksiyonu oluşturup bu game sourcedeki sabit değişkeni değiştiriyorum ve sanki farklı bir npcye tıklamışım gibi algılamasını istiyorum, yani olay şu;
Ilk when bloğunda 20383 kodlu npc normal bir şekilde çalışıyor ama 2. when blokğunda 20383 kodlu npcye tıkladığımda ilk önce o npcnin idsi game sourceye gidiyor sonrasından kendi ürettiğim select_npc_by_vnum(int npcVnum) fonksiyonu ile başka bir npcnın idsini game sourceye yolluyorum yani farklı bir npcyi açmış gibi gosteriyorum ve o npcnin cubesini açıyor bana, yani bir npcde birden fazla npcnin cubesını kullanabıleceğim bir durum oluştu şuan
peki olayı anlattım devamı olan kodlar da şu şekilde
önce quest fonksiyonumuzu oluşturacağız;
questlua_global.cpp dosyasını açıyoruz;
int _find_npc_by_vnum(lua_State* L) fonksiyonunu tanımlandıktan sonra bir fonksiyon tanımlıyoruz ekleyeceğimiz blok şu şekilde;
Eğer sizde ALUA(_find_npc_by_vnum) şeklinde gozukuyorsa şu şekil ekleyiniz;
Şimdi arkadaşlar burda bahsetmek istediğim bi şey var bu fonksiyon oyundaki character objelerini bu npc ya da oyuncu olabilir bizim verdiğimiz vnum değerinde olanları buluyor ve ilk bulduğunun id'sini srcnin başta aldığı o sabit değişkene atıyor mesala 1. köydeki market npcsi ile 2. köydeki market npcsi farklı objelerdir ve farklı idlere sahiplerdir aslında vnumları aynı olsa da bunu demek istiyordum
Quest fonksiyonu bu şekildeydi { "find_npc_by_vnum", _find_npc_by_vnum }, aratıp altına
{ "select_npc_by_vnum", _select_npc_by_vnum }, eklemeyi unutmayıni, şu şekilde olacak o kısım;
Olay bu kadardı aslında ha bir de şu noktayı söylemem lazm cube open komudunu çalıştırdığımızda Cube_open fonksiyonu işler cube.cpp içinde o fonksiyonun içinde şu kısım var;
Bu if blogu bizim npcye olan uzaklığımızı ölçüyor ve buna göre eğer npcden cok uzaktaysanız açmayı engelleyebilir, bence bu bloğu silin arkadaşlar sıkıntı çıkarmasın.
Sourceyle işimiz bitiyor,
Son olarak quest dizini içinde quest fonksiyonlarına ekleyin bu fonksiyonu olay tamamdır.Arkadaşlar şu kısmı atlamamak lazım biz fonksiyonu tanımlarken şunu kullandık;
if (CHARACTER_MANAGER::instance().GetCharactersByRaceNum(race, i))
Ben fonksiyonu select_npc_by_vnum(20017) şeklinde kullanırsam üstte belirttiğim satırda bana oyundaki tüm o Vnumdaki character objelerini listeliyor, demem o ki 20017 vnumundaki character objesinin (npcnin) oynun herhangi bir yerinde sabitlenmiş olması ya da gm tarafından çağırılması lazım ki fonksiyon onun üzerinden işlem yapabilsin yani oyunda var olması lazım o character objesinin (npcnin) fonksiyonun bulabilmesi için, normal olarak cube sistemini açmaya çalıştığımızda bir npc aracılığıyla yaparız dimi o npcye tıklarız vardır o npc yani
umarım anlatabilmişimdir.
Teşekkürler.
Sistem bu;
Şimdi benim bulduğum çözüm yolu alternatif cube sistemi vs değil ufak bi yanıltma olcak yaptığım şu aslında, bir npcden bir quest fonksiyonu yardımıyla herhangi başka bir npcnın cubesine ulaşmayı göstericem bu sayede mesala bir npcye tıkladığınızda ilk seçenekten o npcnın kendi cubesini 2. secenekten baska bir npcnin cubesini 3. secenekten baska vs vs.
Jae-Seon Kim adlı npcden Yu-Hwanda'a tanımlı olan (cube.txt içinde Yu-Hwan'ın vnumunun kullanıldığı kısımlar) item listesini yani cube penceresini açıyorum burda;
Şimdi bu cube sisteminin olayı, quest içinde command("cube open") fonksiyonunu kullandığımız npcnin üzerinden geçiyor,
biz npcye tıkladığımız an game source icerisinde o npcyi bir obje olarak alıp vnumunu cube.txt içindeki vnumlarla karşılaştırıp sonradan kullanmak için itemleri listeliyor vs.
Npcye tıkladığımız andaki o npcnin id si game sourceye gidiyor ve bir sabit değişkene atanıyor
ben de bir quest fonksiyonu oluşturup bu game sourcedeki sabit değişkeni değiştiriyorum ve sanki farklı bir npcye tıklamışım gibi algılamasını istiyorum, yani olay şu;
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Ilk when bloğunda 20383 kodlu npc normal bir şekilde çalışıyor ama 2. when blokğunda 20383 kodlu npcye tıkladığımda ilk önce o npcnin idsi game sourceye gidiyor sonrasından kendi ürettiğim select_npc_by_vnum(int npcVnum) fonksiyonu ile başka bir npcnın idsini game sourceye yolluyorum yani farklı bir npcyi açmış gibi gosteriyorum ve o npcnin cubesini açıyor bana, yani bir npcde birden fazla npcnin cubesını kullanabıleceğim bir durum oluştu şuan
peki olayı anlattım devamı olan kodlar da şu şekilde
önce quest fonksiyonumuzu oluşturacağız;
questlua_global.cpp dosyasını açıyoruz;
int _find_npc_by_vnum(lua_State* L) fonksiyonunu tanımlandıktan sonra bir fonksiyon tanımlıyoruz ekleyeceğimiz blok şu şekilde;
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Eğer sizde ALUA(_find_npc_by_vnum) şeklinde gozukuyorsa şu şekil ekleyiniz;
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Şimdi arkadaşlar burda bahsetmek istediğim bi şey var bu fonksiyon oyundaki character objelerini bu npc ya da oyuncu olabilir bizim verdiğimiz vnum değerinde olanları buluyor ve ilk bulduğunun id'sini srcnin başta aldığı o sabit değişkene atıyor mesala 1. köydeki market npcsi ile 2. köydeki market npcsi farklı objelerdir ve farklı idlere sahiplerdir aslında vnumları aynı olsa da bunu demek istiyordum

Quest fonksiyonu bu şekildeydi { "find_npc_by_vnum", _find_npc_by_vnum }, aratıp altına
{ "select_npc_by_vnum", _select_npc_by_vnum }, eklemeyi unutmayıni, şu şekilde olacak o kısım;
Olay bu kadardı aslında ha bir de şu noktayı söylemem lazm cube open komudunu çalıştırdığımızda Cube_open fonksiyonu işler cube.cpp içinde o fonksiyonun içinde şu kısım var;
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Bu if blogu bizim npcye olan uzaklığımızı ölçüyor ve buna göre eğer npcden cok uzaktaysanız açmayı engelleyebilir, bence bu bloğu silin arkadaşlar sıkıntı çıkarmasın.
Sourceyle işimiz bitiyor,
Son olarak quest dizini içinde quest fonksiyonlarına ekleyin bu fonksiyonu olay tamamdır.Arkadaşlar şu kısmı atlamamak lazım biz fonksiyonu tanımlarken şunu kullandık;
if (CHARACTER_MANAGER::instance().GetCharactersByRaceNum(race, i))
Ben fonksiyonu select_npc_by_vnum(20017) şeklinde kullanırsam üstte belirttiğim satırda bana oyundaki tüm o Vnumdaki character objelerini listeliyor, demem o ki 20017 vnumundaki character objesinin (npcnin) oynun herhangi bir yerinde sabitlenmiş olması ya da gm tarafından çağırılması lazım ki fonksiyon onun üzerinden işlem yapabilsin yani oyunda var olması lazım o character objesinin (npcnin) fonksiyonun bulabilmesi için, normal olarak cube sistemini açmaya çalıştığımızda bir npc aracılığıyla yaparız dimi o npcye tıklarız vardır o npc yani
umarım anlatabilmişimdir.Teşekkürler.
Son düzenleme:
sanmıyorum kardeşim :/srcsiz olmuyor mu hocam
teşekkür ederim en azından yapıp konusunu paylaşmışsın <3sanmıyorum kardeşim :/
ne demekteşekkür ederim en azından yapıp konusunu paylaşmışsın <3

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 19
- Görüntüleme
- 2K
- Cevaplar
- 7
- Görüntüleme
- 1K
Altın Konu
[C++] Prevent Ride in War (PvP) Maps
- Cevaplar
- 7
- Görüntüleme
- 2K
- Cevaplar
- 18
- Görüntüleme
- 5K
- Cevaplar
- 12
- Görüntüleme
- 4K
