vSRO Paylaşım VSRO | Görev Ekleme Rehberi

Thread owner
herşeyi iyi güzel ayarladıkda %100 görev düşecek şekilde ayarladık diyelim bir uniqueye ekledik görevi 8 kişi party şeklinde gidip hepsi görevi aldığı zaman uniqueyi kestiklerinde 1 tane görev düşecek hangisine verirse artık böyle yapmak yerine 8 kişiyede düşecek şekilde nasıl yapabiliriz mesela partyde kimler varsa hepsine o görevden 1 tane düşecek. tek bir kişiye değil herkes kendisininkini alıcak atıyorum 7 kişiyiz 7 tane düşecek isimleri yazacak görev eşyasının üzerinde hangisi kiminse onu alabilecek yerden bu konuya biri acıklık getirirse cok sevinirim beyler baya uğraştım ama bulamadım gezmediğim yer kalmadı
Scpritteki luasetstartmethod kısmının hemen altına

LuaSetDivideType(5)

ekleyerek dener misin?
 
Herkese Senua'dan merhabalar,

Hepinizin bildiği gibi görev ekleme ile ilgili güzel bir rehber hiçbir yerde mevcut değil. Gördüğüm en kapsamlı görev konusu Epvp'deki görev scpritleri paylaşıldığında anlatılan konu idi, ancak onun bile eksikleri vardı. Sizlere elimden geldiğinde tane tane ayrıntılı bir biçimde hazırsanız anlatmaya başlıyorum.

İlk olarak scpritlerden bahsetmek istiyorum. Nedir bu scpritler? Scpritler lua dilinde yazılmış kod parçalarıdır, fonksiyonlarıdır da diyebiliriz. Gameserver'e tanımlanmış lua komutları bu scpritlerin içerisinde aranır ve mevcut komutlar okunarak gameserver tarafından işleme alınır. Scprit olayının genel çalışma mantığı budur. Unutmadan söyleyeyim tanımlanmış çok fantastik komutlar mevcuttur, bunların %80'i mevcut scpitlerde kullanılmamıştır ama aktiflerdir. Bunların ne olduğunu ve neler yapılabileceğini sizin kabiliyetinize bırakıyorum. Her şeyi anlatmayalım değilmi tadı kaçmasın :p

Scpritlerin clean halini bu linkten indirebilirsiniz. Download
Rar içerisindeki Event klasöründekiler event lua'ları için, Quest klasöründekiler normal quest'ler içindir. @Define.lua genel komutlar için joymax tarafından yapılmış tanımları içermektedir. @Eventlist.lua event lua'larının listesi ve @QuestList.lua ise normal quest lua'larının listesidir. Konu sonuna kadarki tüm işlemleri yaptıktan sonra scprit kalsörümüzdeki bütün .bat uzantılı komutları çalıştırıp .sct uzantılarını serverfiles içerisindeki eski .sct'ler ile değiştireceğiz.

Anlatımda kendi server'imde Roc'a eklediğim görevi kullanacağım. Hadi başlayalım.

1- Görev lua'sı
Adsız.png

1 numaralı kısım; Görevimizin fonksiyonudur. Bu fonsiyonumuzun ismi _RefQuest'e ekleyeceğimiz satırdaki codename ile aynı olmak zorundadır.
2 numaralı kısım; Görevimizin ID sinin alınmasını sağlayan komuttur. QNO_VENUS_ROC codename'ye sahip görevin ID'si bu komut ile alınır ve işleme konulur. _RefQuest'e ekleyeceğimiz satırdaki codename ile aynı olmak zorundadır.
3 numaralı kısım; Görevimizin başlama koşuludur. QSC_LEVEL, 1,1 li kısımın ilki max level, ikincisi min level şartıdır. 1,1 yaparsanız görev her seviyede kullanılabilir demektir.
4 numaralı kısım; Konuşma penceresi akfif/deaktif, 1 demek aktif demektir.
5 numaralı kısım; Göreve başlama metodu, QM_CONVERSATION konuşma şeklinde demek. 1 sayısı npc'lerin sayısı, ve sonraki kısımda ilgili npc'lerin kodunu göstermektedir.
6 numaralı kısım; Görevi tamamlama npc'si. ve bu npc'nin kodu
7 numaralı kısım; Görevin belireceği npc sayısı ve npc'lerin kodu
8 numaralı kısım; Görevi yapabilme sayısı, 0 demek sınırsız sayıda yapılabilir demek
9 numaralı kısım; Görevin kod kısmındaki veri boyutunun limiti, burada QuestID baz alınmış. 1 sayısı da baz alınan tanım sayısını göstermekte. Burada sadece QuestID baz alındığı için değerimiz 1.
10 numaralı kısım; MISSION_TYPE_GATHER_ITEM_FROM_MONSTER görevin yapılma şekli mob'tan item toplama demek, SN_ ile başlayan bütün kısımlar oyunda görünecek yazılardan bahsetmekte. Bunları konunun ilerisinde media kısmında kullanacağız. NPC'mizin kodu yine burada da var, düşecek itemin kodu ve bu itemden ne kadar toplanması gerektiği 1,1 li kısımda mevcut, 1,20 yaparsak 20 tane toplamamız gerekir. Mob'un kodu ve sondaki 100 rakamı item'in bu mob'tan düşme ihtimali. 100 demek %100 ihtimal demek.
11 numaralı kısım; NPC ve görev penceresindeki konuşma pencerelerinin olduğu kısım
12 numaralı kısım; Görevi yapabilme sayısı, 0 demek sınırsız sayıda yapılabilir demek
13 numaralı kısım; Görev ödüllerinin verilme şekli, 1 demek npc'den açılan pencere ile almak demek.
15 numaralı kısım; Görev ödüllerinin tanımlandığı kısım. İlk baştaki 4 adet sıfır orada olmak zorunda, bu alanda exp, gold, zerk gibi değişik görev ödülleri kullanılıyor. Bundan sonraki kısımda item kodundan önceki 1 sayısı bu itemin ödül olarak aktif olup olmadığını, item kodundan sonraki sayıda bu itemden kaç adet verileceğini belirtiyor.
16 numaralı kısım; Görev ödülü olarak skill point verebilmenin olduğu kısım
17 numaralı kısım; end komutumuz function'ın son bulduğu kısım end olmazsa gameserver lua'mızın hatalı olduğunu söyler ve görevi işleme almaz.

Bundan sonraki database ve media kısımlarında item sayılarımız, QuestID'miz ve görev codename'mizin lua ile tutarlı olması gerektiğini unutmayınız.

2- Database;

Rich (BB code):
İçeriği görebilmek için Giriş yap ya da üye ol.

Rich (BB code):
İçeriği görebilmek için Giriş yap ya da üye ol.

Rich (BB code):
İçeriği görebilmek için Giriş yap ya da üye ol.

3- Media;

Rich (BB code):
İçeriği görebilmek için Giriş yap ya da üye ol.


Konu giderek düzenlenecek ve ayrıntı artırılacaktır.
Mökemmelsin sen :D
 
benim bir sorum var ben görevi toplama şeklinde değilde sadece kesme olarak yapmak istiyorum yani 1000 tane niye hunter kes şeklinde ve bunun sadece 80+ level karakterlere gözükmesini ve 1 kez yapılmasını istiyorum level kısmı tamam 1 kez tamam ama bunu toplamaktan kesmeye nasıl çeviririz bu şekilde 6 7 tane görev eklicem farklı farklı düşünceleriniz nelerdir yardımcı olabilir misiniz, teşekkürler.

NOT: BİRAZ ARAŞTIRMA YAPTIKTAN SONRA YAPMAK İSTEDİĞİMİ BULDUM
LuaSetMissionData_EX BU KOMUT VE MISSION_TYPE_KILL_MONSTER komutu kesme görevi olarak ekliyor başka bir sorum daha olacak ben 7 adet farklı kesme görevini aynı npc ekliyeceğim konuşma pencerelerinin kodlarını media eklerken değiştirmem gerekiyor mu mesela sn_1 2 3 4 5 diye gidiyor ben 2. görevi eklerken 6 7 8 9 gibi mi devam edicem yoksa aynı kod satırını mı eklicem.
 
Son düzenleme:
Herkese Senua'dan merhabalar,

Hepinizin bildiği gibi görev ekleme ile ilgili güzel bir rehber hiçbir yerde mevcut değil. Gördüğüm en kapsamlı görev konusu Epvp'deki görev scpritleri paylaşıldığında anlatılan konu idi, ancak onun bile eksikleri vardı. Sizlere elimden geldiğinde tane tane ayrıntılı bir biçimde hazırsanız anlatmaya başlıyorum.

İlk olarak scpritlerden bahsetmek istiyorum. Nedir bu scpritler? Scpritler lua dilinde yazılmış kod parçalarıdır, fonksiyonlarıdır da diyebiliriz. Gameserver'e tanımlanmış lua komutları bu scpritlerin içerisinde aranır ve mevcut komutlar okunarak gameserver tarafından işleme alınır. Scprit olayının genel çalışma mantığı budur. Unutmadan söyleyeyim tanımlanmış çok fantastik komutlar mevcuttur, bunların %80'i mevcut scpitlerde kullanılmamıştır ama aktiflerdir. Bunların ne olduğunu ve neler yapılabileceğini sizin kabiliyetinize bırakıyorum. Her şeyi anlatmayalım değilmi tadı kaçmasın :p

Scpritlerin clean halini bu linkten indirebilirsiniz. Download
Rar içerisindeki Event klasöründekiler event lua'ları için, Quest klasöründekiler normal quest'ler içindir. @Define.lua genel komutlar için joymax tarafından yapılmış tanımları içermektedir. @Eventlist.lua event lua'larının listesi ve @QuestList.lua ise normal quest lua'larının listesidir. Konu sonuna kadarki tüm işlemleri yaptıktan sonra scprit kalsörümüzdeki bütün .bat uzantılı komutları çalıştırıp .sct uzantılarını serverfiles içerisindeki eski .sct'ler ile değiştireceğiz.

Anlatımda kendi server'imde Roc'a eklediğim görevi kullanacağım. Hadi başlayalım.

1- Görev lua'sı
376

1 numaralı kısım; Görevimizin fonksiyonudur. Bu fonsiyonumuzun ismi _RefQuest'e ekleyeceğimiz satırdaki codename ile aynı olmak zorundadır.
2 numaralı kısım; Görevimizin ID sinin alınmasını sağlayan komuttur. QNO_VENUS_ROC codename'ye sahip görevin ID'si bu komut ile alınır ve işleme konulur. _RefQuest'e ekleyeceğimiz satırdaki codename ile aynı olmak zorundadır.
3 numaralı kısım; Görevimizin başlama koşuludur. QSC_LEVEL, 1,1 li kısımın ilki max level, ikincisi min level şartıdır. 1,1 yaparsanız görev her seviyede kullanılabilir demektir.
4 numaralı kısım; Konuşma penceresi akfif/deaktif, 1 demek aktif demektir.
5 numaralı kısım; Göreve başlama metodu, QM_CONVERSATION konuşma şeklinde demek. 1 sayısı npc'lerin sayısı, ve sonraki kısımda ilgili npc'lerin kodunu göstermektedir.
6 numaralı kısım; Görevi tamamlama npc'si. ve bu npc'nin kodu
7 numaralı kısım; Görevin belireceği npc sayısı ve npc'lerin kodu
8 numaralı kısım; Görevi yapabilme sayısı, 0 demek sınırsız sayıda yapılabilir demek
9 numaralı kısım; Görevin kod kısmındaki veri boyutunun limiti, burada QuestID baz alınmış. 1 sayısı da baz alınan tanım sayısını göstermekte. Burada sadece QuestID baz alındığı için değerimiz 1.
10 numaralı kısım; MISSION_TYPE_GATHER_ITEM_FROM_MONSTER görevin yapılma şekli mob'tan item toplama demek, SN_ ile başlayan bütün kısımlar oyunda görünecek yazılardan bahsetmekte. Bunları konunun ilerisinde media kısmında kullanacağız. NPC'mizin kodu yine burada da var, düşecek itemin kodu ve bu itemden ne kadar toplanması gerektiği 1,1 li kısımda mevcut, 1,20 yaparsak 20 tane toplamamız gerekir. Mob'un kodu ve sondaki 100 rakamı item'in bu mob'tan düşme ihtimali. 100 demek %100 ihtimal demek.
11 numaralı kısım; NPC ve görev penceresindeki konuşma pencerelerinin olduğu kısım
12 numaralı kısım; Görevi yapabilme sayısı, 0 demek sınırsız sayıda yapılabilir demek
13 numaralı kısım; Görev ödüllerinin verilme şekli, 1 demek npc'den açılan pencere ile almak demek.
15 numaralı kısım; Görev ödüllerinin tanımlandığı kısım. İlk baştaki 4 adet sıfır orada olmak zorunda, bu alanda exp, gold, zerk gibi değişik görev ödülleri kullanılıyor. Bundan sonraki kısımda item kodundan önceki 1 sayısı bu itemin ödül olarak aktif olup olmadığını, item kodundan sonraki sayıda bu itemden kaç adet verileceğini belirtiyor.
16 numaralı kısım; Görev ödülü olarak skill point verebilmenin olduğu kısım
17 numaralı kısım; end komutumuz function'ın son bulduğu kısım end olmazsa gameserver lua'mızın hatalı olduğunu söyler ve görevi işleme almaz.

Bundan sonraki database ve media kısımlarında item sayılarımız, QuestID'miz ve görev codename'mizin lua ile tutarlı olması gerektiğini unutmayınız.

2- Database;

Rich (BB code):
İçeriği görebilmek için Giriş yap ya da üye ol.

Rich (BB code):
İçeriği görebilmek için Giriş yap ya da üye ol.

Rich (BB code):
İçeriği görebilmek için Giriş yap ya da üye ol.

3- Media;

Rich (BB code):
İçeriği görebilmek için Giriş yap ya da üye ol.


Konu giderek düzenlenecek ve ayrıntı artırılacaktır.
Göreve tıkladığımda Dc oldu char. Lua da mı hata yaptım tam çözemedim. Yardımcı olur musunuz?

function QNO_ADVANCED_ADV4()
QUESTID = LuaGetQuestID("QNO_ADVANCED_ADV4")
LuaSetStartCodition(2, QSC_QUEST, QSC_LEVEL, 120, 1)
LuaSetDifferentString(1)
QM_CONVERSATION = 1
LuaSetStartMethod(QM_CONVERSATION, 1, "NPC_TQ_TREASUREBOX1")
LuaInsertMissionOrCompleteNpc("NPC_TQ_TREASUREBOX1")
LuaQuestInsertNpc(1, "NPC_TQ_TREASUREBOX1")
LuaSetAchievementLimit(0)
LuaSetMissionDataSize(QUESTID, 1)
LuaSetCollectionItemMissionData(QUESTID, 0, MISSION_TYPE_GATHER_ITEM_FROM_MONSTER, "SN_CON_QNO_ADVANCED_ADV4", 1, "NPC_TQ_TREASUREBOX1", 1, 25, "ITEM_ETC_TREASUREBOX_KEY_CHALLENGE", "MOB_AR_CURSECOLD",100 )
InsertQuestMenuStringList("NPC_TQ_TREASUREBOX1", 8, "BASIC_MENUSTRING_GREETING", "SN_NPC_TQ_TREASUREBOX1_QS", "BASIC_MENUSTRING_REQUEST_ACCEPT_QUEST", "SN_TALK_QNO_ADVANCED_ADV4_01", "BASIC_MENUSTRING_AT_ACCEPT", "SN_TALK_QNO_ADVANCED_ADV4_02", "BASIC_MENUSTRING_AT_DENY", "SN_TALK_QNO_ADVANCED_ADV4_03", "BASIC_MENUSTRING_NOT_ACHIEVED", "SN_TALK_QNO_ADVANCED_ADV4_04", "BASIC_MENUSTRING_ACCEPT_AFTER_ONE_CLEAR", "SN_TALK_QNO_ADVANCED_ADV4_05", "BASIC_MENUSTRING_ACHIEVED", "SN_TALK_QNO_ADVANCED_ADV4_06", "BASIC_MENUSTRING_ACHIEVED_NOW", "SN_TALK_QNO_ADVANCED_ADV4_07")
LuaSetMissionCompleteNum(0)
PAY_ITEM_METHOD_EXACT = 1
LuaSetAchievedItem(0, 0, 0, 0, 1, "ITEM_ETC_ARCHEMY_UPPER_REINFORCE_RECIPE_WE_RARE_B_12" , 1,1, "ITEM_ETC_ARCHEMY_UPPER_REINFORCE_RECIPE_SH_RARE_B_12",1)
LuaSetAchievedSkillPont(0)
end
 
Herkese Senua'dan merhabalar,

Hepinizin bildiği gibi görev ekleme ile ilgili güzel bir rehber hiçbir yerde mevcut değil. Gördüğüm en kapsamlı görev konusu Epvp'deki görev scpritleri paylaşıldığında anlatılan konu idi, ancak onun bile eksikleri vardı. Sizlere elimden geldiğinde tane tane ayrıntılı bir biçimde hazırsanız anlatmaya başlıyorum.

İlk olarak scpritlerden bahsetmek istiyorum. Nedir bu scpritler? Scpritler lua dilinde yazılmış kod parçalarıdır, fonksiyonlarıdır da diyebiliriz. Gameserver'e tanımlanmış lua komutları bu scpritlerin içerisinde aranır ve mevcut komutlar okunarak gameserver tarafından işleme alınır. Scprit olayının genel çalışma mantığı budur. Unutmadan söyleyeyim tanımlanmış çok fantastik komutlar mevcuttur, bunların %80'i mevcut scpitlerde kullanılmamıştır ama aktiflerdir. Bunların ne olduğunu ve neler yapılabileceğini sizin kabiliyetinize bırakıyorum. Her şeyi anlatmayalım değilmi tadı kaçmasın :p

Scpritlerin clean halini bu linkten indirebilirsiniz. Download
Rar içerisindeki Event klasöründekiler event lua'ları için, Quest klasöründekiler normal quest'ler içindir. @Define.lua genel komutlar için joymax tarafından yapılmış tanımları içermektedir. @Eventlist.lua event lua'larının listesi ve @QuestList.lua ise normal quest lua'larının listesidir. Konu sonuna kadarki tüm işlemleri yaptıktan sonra scprit kalsörümüzdeki bütün .bat uzantılı komutları çalıştırıp .sct uzantılarını serverfiles içerisindeki eski .sct'ler ile değiştireceğiz.

Anlatımda kendi server'imde Roc'a eklediğim görevi kullanacağım. Hadi başlayalım.

1- Görev lua'sı
376

1 numaralı kısım; Görevimizin fonksiyonudur. Bu fonsiyonumuzun ismi _RefQuest'e ekleyeceğimiz satırdaki codename ile aynı olmak zorundadır.
2 numaralı kısım; Görevimizin ID sinin alınmasını sağlayan komuttur. QNO_VENUS_ROC codename'ye sahip görevin ID'si bu komut ile alınır ve işleme konulur. _RefQuest'e ekleyeceğimiz satırdaki codename ile aynı olmak zorundadır.
3 numaralı kısım; Görevimizin başlama koşuludur. QSC_LEVEL, 1,1 li kısımın ilki max level, ikincisi min level şartıdır. 1,1 yaparsanız görev her seviyede kullanılabilir demektir.
4 numaralı kısım; Konuşma penceresi akfif/deaktif, 1 demek aktif demektir.
5 numaralı kısım; Göreve başlama metodu, QM_CONVERSATION konuşma şeklinde demek. 1 sayısı npc'lerin sayısı, ve sonraki kısımda ilgili npc'lerin kodunu göstermektedir.
6 numaralı kısım; Görevi tamamlama npc'si. ve bu npc'nin kodu
7 numaralı kısım; Görevin belireceği npc sayısı ve npc'lerin kodu
8 numaralı kısım; Görevi yapabilme sayısı, 0 demek sınırsız sayıda yapılabilir demek
9 numaralı kısım; Görevin kod kısmındaki veri boyutunun limiti, burada QuestID baz alınmış. 1 sayısı da baz alınan tanım sayısını göstermekte. Burada sadece QuestID baz alındığı için değerimiz 1.
10 numaralı kısım; MISSION_TYPE_GATHER_ITEM_FROM_MONSTER görevin yapılma şekli mob'tan item toplama demek, SN_ ile başlayan bütün kısımlar oyunda görünecek yazılardan bahsetmekte. Bunları konunun ilerisinde media kısmında kullanacağız. NPC'mizin kodu yine burada da var, düşecek itemin kodu ve bu itemden ne kadar toplanması gerektiği 1,1 li kısımda mevcut, 1,20 yaparsak 20 tane toplamamız gerekir. Mob'un kodu ve sondaki 100 rakamı item'in bu mob'tan düşme ihtimali. 100 demek %100 ihtimal demek.
11 numaralı kısım; NPC ve görev penceresindeki konuşma pencerelerinin olduğu kısım
12 numaralı kısım; Görevi yapabilme sayısı, 0 demek sınırsız sayıda yapılabilir demek
13 numaralı kısım; Görev ödüllerinin verilme şekli, 1 demek npc'den açılan pencere ile almak demek.
15 numaralı kısım; Görev ödüllerinin tanımlandığı kısım. İlk baştaki 4 adet sıfır orada olmak zorunda, bu alanda exp, gold, zerk gibi değişik görev ödülleri kullanılıyor. Bundan sonraki kısımda item kodundan önceki 1 sayısı bu itemin ödül olarak aktif olup olmadığını, item kodundan sonraki sayıda bu itemden kaç adet verileceğini belirtiyor.
16 numaralı kısım; Görev ödülü olarak skill point verebilmenin olduğu kısım
17 numaralı kısım; end komutumuz function'ın son bulduğu kısım end olmazsa gameserver lua'mızın hatalı olduğunu söyler ve görevi işleme almaz.

Bundan sonraki database ve media kısımlarında item sayılarımız, QuestID'miz ve görev codename'mizin lua ile tutarlı olması gerektiğini unutmayınız.

2- Database;

Rich (BB code):
İçeriği görebilmek için Giriş yap ya da üye ol.

Rich (BB code):
İçeriği görebilmek için Giriş yap ya da üye ol.

Rich (BB code):
İçeriği görebilmek için Giriş yap ya da üye ol.

3- Media;

Rich (BB code):
İçeriği görebilmek için Giriş yap ya da üye ol.


Konu giderek düzenlenecek ve ayrıntı artırılacaktır.
 

Bu konuyu görüntüleyen kullanıcılar

Benzer konular

Cevaplar
8
Görüntüleme
263
skyrage33
Cevaplar
44
Görüntüleme
3K
VSROCap105 Online
Cevaplar
7
Görüntüleme
1K
SeruvenHosting
Cevaplar
5
Görüntüleme
3K
V4N_HELLSING
V
Geri
Üst Alt