Hoş Geldin, Ziyaretçi!

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

dsgn kguard
ROLLET remastered
vsupload kguardedgeakademi
cleopatra legacy

vSRO Çözüldü Maxiguard Achivement

DragonSlayer

Old School
Administrator
Katılım
13 May 2019
Mesajlar
3,551
Çözümler
69
Alınan Beğeni
5,854
Ödül Puanları
213
Konum
Lutsk
Maxiguard kullanan arkadaşlar...
_UpdateCharAchievement prosedürüne eklenecek tek bir satırı paylaşırsanız sevinirim. Gerisini çoğaltılırım...

Bir türlü çalıştıramadım.
 

EfsaneSro

Sıkıldım
.
Katılım
6 Şub 2019
Mesajlar
2,918
Çözümler
46
Alınan Beğeni
9,074
Ödül Puanları
113
Konum
Steam
Maxiguard kullanan arkadaşlar...
_UpdateCharAchievement prosedürüne eklenecek tek bir satırı paylaşırsanız sevinirim. Gerisini çoğaltılırım...

Bir türlü çalıştıramadım.
Bu aşağıdaki anlatıma göre yapınca direk kullanamıyor muyuz acaba bilgilendirebilirmisin bende deniyim :D

Achievement Sistemi

Yeni Achievement sistemi ile oyuncularınıza tamamlayabileceği bazı başarımlar belirleyebilirsiniz. Başarım tamamlandığında, yani 100%’e ulaştığında ilgili Title
(bizim daha önce Tag olarak adlandırdığımız) karakterin isminin solunda gözüken
<MaxiGuard> gibi taglar kullanılabilir.

İçerikler MaxiGuard_User veritabanındaki _RefAchievements tablosundan ayarlanır.
Qf3aK0Fqy-Iif1CCLhugjw3I-V5YACVDcIVRdKntfvLe0OHqjq2B1VcLdCRg0WU7caEppAJZ87ZHW9deiQvfEp56KrdICkWj2OC2zKouTNnqCd67gPICN7S0YhirbW1x4DAaxa9ClVNaW8BB_9sIuedkVAcvXDOPxqo4C7irE2goXqagYaIZTw


Name: Başarımın adı. Aynı zamanda başarım tamamlandığında Tag olarak gelecek olan yazı da budur.
Requirement: Başarımın tamamlanması için gereken şartlar.
Reward: Başarım tamamlandığında bir kereye mahsus, Tag harici bir ödül vermek isterseniz buradan belirtebilirsiniz.
RequirementMax: Başarımın tamamlanması için totalde kaç “puan” toplaması gerektiğidir.
NoTagReward: Başarım tamamlandığında Tag ödülü olup olmadığını belirtir.

Karakter, bir başarımda bir gelişme gösterdiyse bunu sizin tespit etmeniz ve oyuncuya yansıtmanız gerekmektedir. Bunu şu şekilde yapabilirsiniz;

exec _UpdateCharAchievement @CharID, @Name, @Progress

@CharID karakterin IDsi olup, @Name hangi başarımın geliştirildiğini belirtir. Örneğin
<Tiger Girl Slayer> adında bir başarımınız var ise, karakter Tiger Girl öldürdüğünde bu prosedürü kullanarak karakterin başarım seviyesini güncellemeniz gerekmektedir.
@Progress ise başarımda kaç birim ilerlendiğini ayarlar.

9gFThInSlVoW8ZKxG-1U78L0BrTQjfMvUA_V_kYP2LVVPdqFcvyGXUQzZpafCNsgonlWjyFOm46m046_JtoZWxUjIt1kFIxmdud3bAvy8iXBgzWd18EONS3cgo8em9SlihEJJPjCMllexL35NipPUx1u0TgwdZPP-eZa4i1gHI3RvZlB7mwqgA


Ek olarak, eğer Tag harici bir ödül veriyor iseniz, başarım %100’e ulaştığında bunu tespit edip ödülü sizin vermeniz gerekmektedir. Başarım durumları anlık olarak _AchievementStatus tablosundan takip edilebilir.

Üst üste post gönderildiği için tek mesajda birleştirildi:

Misal örnek
1673504087093.png


1673504197756.png
 

DragonSlayer

Old School
Administrator
Katılım
13 May 2019
Mesajlar
3,551
Çözümler
69
Alınan Beğeni
5,854
Ödül Puanları
213
Konum
Lutsk
Teşekkürler, döküman bende de mevcut fakat tabloya eklenen görevlerin ve gereksinimlerin prosedürde olması gerekli değil mi ? Direkt çalışacağını sanmıyorum.
exec _UpdateCharAchievement @CharID, @Name, @Progress
satırından sonra sanırım göreve ilişkin komut verilmesi gerekli. Şu mobdan şu kadar öldür gibi.

Bu aşağıdaki anlatıma göre yapınca direk kullanamıyor muyuz acaba bilgilendirebilirmisin bende deniyim :D
 

EfsaneSro

Sıkıldım
.
Katılım
6 Şub 2019
Mesajlar
2,918
Çözümler
46
Alınan Beğeni
9,074
Ödül Puanları
113
Konum
Steam
Teşekkürler, döküman bende de mevcut fakat tabloya eklenen görevlerin ve gereksinimlerin prosedürde olması gerekli değil mi ? Direkt çalışacağını sanmıyorum.
exec _UpdateCharAchievement @CharID, @Name, @Progress
satırından sonra sanırım göreve ilişkin komut verilmesi gerekli. Şu mobdan şu kadar öldür gibi.
İçerikler MaxiGuard_User veritabanındaki _RefAchievements tablosundan ayarlanır.

Qf3aK0Fqy-Iif1CCLhugjw3I-V5YACVDcIVRdKntfvLe0OHqjq2B1VcLdCRg0WU7caEppAJZ87ZHW9deiQvfEp56KrdICkWj2OC2zKouTNnqCd67gPICN7S0YhirbW1x4DAaxa9ClVNaW8BB_9sIuedkVAcvXDOPxqo4C7irE2goXqagYaIZTw



Name: Başarımın adı. Aynı zamanda başarım tamamlandığında Tag olarak gelecek olan yazı da budur.
Requirement: Başarımın tamamlanması için gereken şartlar.
Reward: Başarım tamamlandığında bir kereye mahsus, Tag harici bir ödül vermek isterseniz buradan belirtebilirsiniz.
RequirementMax: Başarımın tamamlanması için totalde kaç “puan” toplaması gerektiğidir.
NoTagReward: Başarım tamamlandığında Tag ödülü olup olmadığını belirtir.

1673510847084.png
 

sarkolata

.
Developer
Katılım
2 Tem 2019
Mesajlar
491
Çözümler
7
Alınan Beğeni
790
Ödül Puanları
93
Konum
Los Angeles, CA
Dökümanda anlatılandan farklı bir şey anlatmayacağım aslında ama, şöyle göstereyim:

_RefAchievements tablosunun içeriği:
1673570613467.png

Oyunda bu şekilde gözüküyor;
1673570637807.png

Olay karakterin 5 kere TG kesmesi. 5 TG kestikten sonra 100% olacak ve <Tiger Girl Slayer> tagını kullanabilecek.

Bunun için TG kestiğinde algılatıp, achievementi 1 ilerletmemiz lazım.
Bunun için _UniqueKilled_EDIT trigger prosedürüne küçük bir ekleme yapıyorum. (triggerin trigger ayarlarından aktif olması gerek.)

@KillerCharID, uniqueyi öldüren karakterin idsi, yani achievementi ilerletilecek karakter.
'Tiger Girl Slayer' daha önceden achievemente koyduğumuz isim.
1 de achievementin ne kadar ilerletileceği, 1 tg kesildiği için 1 tane ilerletilecek.

1673570751306.png

Bunu kaydettikten sonra 1 tg kesiyorum ve pencere böyle oluyor:

1673570866704.png

4 tg daha kesersem totalde 5 oluyor ve pencere bu hale geliyor.

1673570902065.png

Ondan sonra "Use Title" butonu aktif oluyor. Kullandığımda ise:

1673570927892.png

Hepsi bu. Pencerenin esas olayı tag vermek. Ama tag dışında bir ödül verilecekse iş az biraz daha karışıyor, achievement tamamlandı mı diye kontrol edip ona göre bir ödül vermeniz lazım.
 

DragonSlayer

Old School
Administrator
Katılım
13 May 2019
Mesajlar
3,551
Çözümler
69
Alınan Beğeni
5,854
Ödül Puanları
213
Konum
Lutsk
Dökümanda anlatılandan farklı bir şey anlatmayacağım aslında ama, şöyle göstereyim:

_RefAchievements tablosunun içeriği:
Ekli dosyayı görüntüle 14984

Oyunda bu şekilde gözüküyor;
Ekli dosyayı görüntüle 14985

Olay karakterin 5 kere TG kesmesi. 5 TG kestikten sonra 100% olacak ve <Tiger Girl Slayer> tagını kullanabilecek.

Bunun için TG kestiğinde algılatıp, achievementi 1 ilerletmemiz lazım.
Bunun için _UniqueKilled_EDIT trigger prosedürüne küçük bir ekleme yapıyorum. (triggerin trigger ayarlarından aktif olması gerek.)

@KillerCharID, uniqueyi öldüren karakterin idsi, yani achievementi ilerletilecek karakter.
'Tiger Girl Slayer' daha önceden achievemente koyduğumuz isim.
1 de achievementin ne kadar ilerletileceği, 1 tg kesildiği için 1 tane ilerletilecek.

Ekli dosyayı görüntüle 14986

Bunu kaydettikten sonra 1 tg kesiyorum ve pencere böyle oluyor:

Ekli dosyayı görüntüle 14987

4 tg daha kesersem totalde 5 oluyor ve pencere bu hale geliyor.

Ekli dosyayı görüntüle 14988

Ondan sonra "Use Title" butonu aktif oluyor. Kullandığımda ise:

Ekli dosyayı görüntüle 14989

Hepsi bu. Pencerenin esas olayı tag vermek. Ama tag dışında bir ödül verilecekse iş az biraz daha karışıyor, achievement tamamlandı mı diye kontrol edip ona göre bir ödül vermeniz lazım.
Burada benim sorunum GM muafiyeti :)Dökümandakine göre yaptım ve tag alamamıştım..
Biraz önce normal bir karakterle girdim ve Achievement puanları işledi.. Dünden beri girdilerimi kontrol ediyorum, gerek dökümanlar, gerek dökümanlarla paralel Hakan beyin yazdıkları ve gerekse kendi yazdıklarım hepsi aynı ama çalışmıyordu.. Ben muafiyeti sadece limit ve kısıtlamalara yönelik sanıyordum. İğneden ipliğe her yerde özgürlük sağlıyormuş :)

Teşekkür ederim cevaplar için.

Mob için, mesela Newbie Tag vermek için bunu sanırım _UniqueKilled_EDIT prosedüründen yapmamam gerek!
500 Mangyang kesince Newbie olarak vermesi için ayar yapıcam..

Muhtemelen __KillNPC prosedürü üzerinden yapacağım, ayrıca komut @MobRefObjID olur diye düşünüyorum.
Bu konuyu sadece normal moblar ve uniquelere yönelik tag aldırmayı görmek için açmıştım.

Şu durumda sadece moba yönelik kısım kaldı... tablo aynıdır da sadece proc kısmında komut yukarıda yazdığım gibi midir emin değilim... denedim sonuç alamadım...
1 satır paylaşabilirseniz sevinirim.. ve tâbi proc. varsayımım doğru mudur?

Cevaplayan herkese teşekkürler.
 

sarkolata

.
Developer
Katılım
2 Tem 2019
Mesajlar
491
Çözümler
7
Alınan Beğeni
790
Ödül Puanları
93
Konum
Los Angeles, CA
Aslında dediğiniz gibi GM muafiyeti sadece limit ve kısıtlamalara yönelik; achievement sistemi ile bir bağlantısı yok. Başka bir sorun olmalı orada.

__KillNPC konu ile alakasız, __KillNPC prosedürü bir trigger prosedürü değil öncelikle, tüm trigger prosedürleri sonunda _EDIT ile bitiyor.
__KillNPC, daha önce __SpawnNPC ile oyunda spawn ettiğiniz mobları öldürmek için. Mesela Madness event yaptınız, event mapinde bir unique spawn ettiniz. 10 dk madness event süresi doldu ancak unique ölmedi, __KillNPC ile unique'yi yok edebiliyorsunuz.

Mangyang gibi Unique olmayan mobların öldürüldüğünde tespit için başka bir sistem mevcut.

1673614590932.png

Ancak orada da belirttiğim gibi mangyang gibi basit sistemler için bunu kullanmak çok akıllıca olmayabilir.
Dökümandaki örnekte kill 500 mangyangs, kill 1000 yeohas gibi örnekler kullanmışım aslında benim hatam. Bu tarz şeyler için achievement kullanılmamalı. Oyunun kendi quest sistemini kullanmak daha mantıklı olacaktır.
 

EfsaneSro

Sıkıldım
.
Katılım
6 Şub 2019
Mesajlar
2,918
Çözümler
46
Alınan Beğeni
9,074
Ödül Puanları
113
Konum
Steam
Aslında dediğiniz gibi GM muafiyeti sadece limit ve kısıtlamalara yönelik; achievement sistemi ile bir bağlantısı yok. Başka bir sorun olmalı orada.

__KillNPC konu ile alakasız, __KillNPC prosedürü bir trigger prosedürü değil öncelikle, tüm trigger prosedürleri sonunda _EDIT ile bitiyor.
__KillNPC, daha önce __SpawnNPC ile oyunda spawn ettiğiniz mobları öldürmek için. Mesela Madness event yaptınız, event mapinde bir unique spawn ettiniz. 10 dk madness event süresi doldu ancak unique ölmedi, __KillNPC ile unique'yi yok edebiliyorsunuz.

Mangyang gibi Unique olmayan mobların öldürüldüğünde tespit için başka bir sistem mevcut.

Ekli dosyayı görüntüle 14995

Ancak orada da belirttiğim gibi mangyang gibi basit sistemler için bunu kullanmak çok akıllıca olmayabilir.
Dökümandaki örnekte kill 500 mangyangs, kill 1000 yeohas gibi örnekler kullanmışım aslında benim hatam. Bu tarz şeyler için achievement kullanılmamalı. Oyunun kendi quest sistemini kullanmak daha mantıklı olacaktır.
belli bi tablo oluşturulup tek mobları o tabloya eklesek codename olarak ordaki codenamelerden çekse direk bir sürü eklemektense codename vb olmaz mı normal mob bile olsa :D
 

sarkolata

.
Developer
Katılım
2 Tem 2019
Mesajlar
491
Çözümler
7
Alınan Beğeni
790
Ödül Puanları
93
Konum
Los Angeles, CA
belli bi tablo oluşturulup tek mobları o tabloya eklesek codename olarak ordaki codenamelerden çekse direk bir sürü eklemektense codename vb olmaz mı normal mob bile olsa :D
Dediğinden çok farklı değil zaten, _RefMobKillNotify eklediğin zaman _HandleMobKilled ile mob kesildiğinde haber veriyor.

1673615677930.png

İki türlü de her mob kesildiğinde sql işlemleri oluyor. Bu 1-5-10 mob için sorun değil de tüm serverın bota attığı kalabalık bir oyunda bir mob için aktif ettiğini düşün. Saniyede binlerce kez sql işlemi olacak.
 
AdBlock Detected

Anlıyoruz, reklamlar can sıkıcı!

Elbette, reklam engelleme yazılımı reklamları engellemede harika bir iş çıkarır, ancak aynı zamanda web sitemizin faydalı özelliklerini de engeller. En iyi site deneyimi için lütfen AdBlocker'ınızı devre dışı bırakın.

AdBlock'u Devre Dışı Bıraktım.