Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!
Merhabalar
Bu konu üzerinden questler hakkında bilgilerimi paylaşacağım.
Quest yazarken;
Aşağıdaki quest 8027 metinin kesilince vereceği notice, money , item gibi ekstra şeyleri vermenizi sağlar.
Eğer katleden kişiye para vermesini isteseydim.
Fonksiyonları Tanımlayalım
"..pc.get_channel_id().." kodu kişinin hangi channelda olduğunu yansıtır.Syschat harici her alanda kullanılabilir. (Quest functions belgenizde pc.get_channel_id ekli olmazsa çalışmaz.)
" .. pc . get_name ( ) .. " kodu kişinin ismini yansıtır.Her alanda kullanılabilir.
" .. pc . get_level ( ) .. " kodu kişinin seviyesini yansıtır.Her alanda kullanılabilir.
Bu konu üzerinden questler hakkında bilgilerimi paylaşacağım.

Quest yazarken;
- Notepad++ kullanın.
- ANSII kodlama türünü seçin.
- Piramit yapısına dikkat edin.
- Yazacağınız questi ilk olarak .lua uzantısıyla kaydedin.Lua uzantısı fonksiyon ve kod betiklerini renklendirerek daha kolay quest yazmanızı sağlayacaktır.
Aşağıdaki quest 8027 metinin kesilince vereceği notice, money , item gibi ekstra şeyleri vermenizi sağlar.
- Kırmızıyla yazılı olan bölüm 8027 klasöründe 8027.start adında bir belge oluşturur, questi başlatır.
- Lacivertle yazılı olan bölüm questin sürekli işlemesi için state belgesi oluşturur.
- Yeşille yazılı olan bölüm 8027 mobunun hiç üzerinde tıklama işlemi gerçekleştirilmeden kesildiğinde alttaki belirlenmiş kodların aktif olacağını gösterir.
- Kalın yazı stiliyle yazılmış alan mobun kesildiğinde herkeze vereceği toplu notice uyarısını açıklar ve gösterir.
- Altınla yazılmış olan bölüm mobun katlediğildiğinde ekstra olarak katleden kişiye sunacağı itemdir game.drop özelliğini kullanır.Eşya envantere gelmez kesen kişinin ismi üzerinde yazılı şekilde yere düşer.
- ​Altın renk ile yazdığım bölümde game.drop_item_with_ownership("Eşya Kodu",Miktarı) kodunu kullandım.Ben 50011 kodlu eşyayı vermesini istedim.
Kod:
[COLOR=#ff0000]quest 8027 begin[/COLOR]
[COLOR=#0000cd]state start begin[/COLOR]
[COLOR=#008000]when 8027.kill begin[/COLOR]
[COLOR=#000000][B] notice_all("CH"..pc.get_channel_id()..": Metin Jeon-Un Kayası " .. pc . get_name ( ) .. " tarafindan " .. pc . get_level ( ) .. ". seviyede yok edildi!") [/B][/COLOR]
[COLOR=#daa520][I]game.drop_item_with_ownership("50011",1)[/I][/COLOR]
end
end
end
- Eğer eşyanın direk yere düşmemesini isteseydim.
- pc.give_item2("İtem Kodu",Miktari) özelliğini kullanırdım ve kullanalım.
Kod:
[COLOR=#FF0000]quest 8027 begin[/COLOR]
[COLOR=#0000CD]state start begin[/COLOR]
[COLOR=#008000]when 8027.kill begin[/COLOR]
[COLOR=#000000][B] notice_all("CH"..pc.get_channel_id()..": Metin Jeon-Un Kayası " .. pc . get_name ( ) .. " tarafindan " .. pc . get_level ( ) .. ". seviyede yok edildi!") [/B][/COLOR]
[I][COLOR=#000000]pc.give_item2("19",1)[/COLOR][/I]
end
end
end
- Yazdığım
- pc.give_item2(19,1) ile mobu kesen kişiye 1 adet +9 Kılıç vermesini sağladım.
Eğer katleden kişiye para vermesini isteseydim.
- pc.change_money("Miktar") veya pc.give_gold("Miktar") özelliğini kullanırdım ve kullanalım.
- pc.give_gold("100") yazdım ve 100 yang vermesini sağladım.
Kod:
[COLOR=#FF0000]quest 8027 begin[/COLOR]
[COLOR=#0000CD]state start begin[/COLOR]
[COLOR=#008000]when 8027.kill begin[/COLOR]
[COLOR=#000000][B] notice_all("CH"..pc.get_channel_id()..": Metin Jeon-Un Kayası " .. pc . get_name ( ) .. " tarafindan " .. pc . get_level ( ) .. ". seviyede yok edildi!") [/B][/COLOR]
[COLOR=#DAA520]pc.give_gold("100")[/COLOR]
end
end
end
- Eğer katleden kişiye birden fazla eşya vermek isteseydim ve hangisini vereceğime ben değilde oyunun karar vermesini isteseydim şöyle yapardım;
- Lacivert ile yazdığım kodlarda oyuna seçenek hakkı tanıdım ve yazdığım kodlardan birini seçmesini istedim.Oyunda dice falına göre herhangi birini seçerek kodların devamını yazdırmış oldu.
- Altın ile yazdığım kodlarda 1. ve 2. seçenekte neler vereceğini, hangi kodu yazdıracağını belirledim.
- Benim istediğim item vermesiydi, 71159 ve 71160 eşyalarından birini verecek.
Kod:
[COLOR=#FF0000]quest 8027 begin[/COLOR]
[COLOR=#0000CD]state start begin[/COLOR]
[COLOR=#008000]when 8027.kill begin[/COLOR]
[COLOR=#000000][B] notice_all("CH"..pc.get_channel_id()..": Metin Jeon-Un Kayası " .. pc . get_name ( ) .. " tarafindan " .. pc . get_level ( ) .. ". seviyede yok edildi!") [/B][/COLOR]
[B][COLOR=#000080] local chance = number(1,2)[/COLOR][/B]
[B][COLOR=#000080] if chance == 1 then[/COLOR][/B]
[B][COLOR=#DAA520]pc.give_item2("71159",1)[/COLOR][/B]
notice("Milonun Sandığı sende!")
[B][COLOR=#000080] elseif chance == 2 then[/COLOR][/B]
[B][COLOR=#DAA520]pc.give_item2("71160",1)[/COLOR][/B]
notice("Athenanın Sandığı sende!")
end
end
end
end
Fonksiyonları Tanımlayalım
"..pc.get_channel_id().." kodu kişinin hangi channelda olduğunu yansıtır.Syschat harici her alanda kullanılabilir. (Quest functions belgenizde pc.get_channel_id ekli olmazsa çalışmaz.)
" .. pc . get_name ( ) .. " kodu kişinin ismini yansıtır.Her alanda kullanılabilir.
" .. pc . get_level ( ) .. " kodu kişinin seviyesini yansıtır.Her alanda kullanılabilir.
Son düzenleme:
Merhabalar size şimdi kişiye özel görev ile açılabilen GM paneli yazmayı öğretmeye çalışacağım.
Bunun yanında letter,info,button,local,if,elseif gibi komutlarıda anlatacağım.
Teşekkürler anlatımlar devam edicek.
Bunun yanında letter,info,button,local,if,elseif gibi komutlarıda anlatacağım.
- Aşağıdaki questimiz oluşturacağımız GM Panelimizin iskeletidir.
- when letter with pc.get_name() == "thesprit" begin kodları ile görevi başlattım yani when letter ile giriş yaparak görev şeklinde açılacağını belirttim.
- Turkuaz renk ile yazdığım yazı ile pc.get_name komutunu şart vererek kullanarak görevi sadece "thesprit" isimli oyuncunun açacağını belirttim.
- Kalın Altın renk ile yazılmış pc.is_gm komutuyla görevin sadece GM olan karektelere gelmesini sağladım.
- Kırmızı renk ile yazdığım alanda send_letter("Görev İsmi") komutunu kullanarak sol tarafta GM
anel isimli bir görev çıkarttım. - Lacivert renk ile aldığım alanlar end komutlarını ekleyeceğiniz yerleri anlamanız içindi.
- ​Quest
- State
- When komutlarının herbiri için end yazarak aralığı kapatıyoruz.
- when info or button with pc.is_gm and pc.get_name() == "thesprit" begin komutlarıyla send_letter("Görev İsmi") komutuyla verdirdiğim göreve tıklayınca açılacak yazacak kodlar için başlattım ve info or button komutlarını kullandım.
Kod:
[COLOR=#0000cd]quest gmpanel begin[/COLOR][COLOR=#0000cd] state start begin[/COLOR]
[COLOR=#daa520] when letter with [B]pc.is_gm[/B] and [/COLOR][COLOR=#40e0d0]pc.get_name() == "thesprit"[/COLOR][COLOR=#daa520] begin[/COLOR]
[COLOR=#ff0000] send_letter("GM:Panel")[/COLOR]
[COLOR=#0000cd] end[/COLOR]
[COLOR=#daa520] when info or button[/COLOR] [COLOR=#DAA520]with [/COLOR][B][COLOR=#daa520]pc.is_gm[/COLOR][/B][COLOR=#DAA520] and [/COLOR][COLOR=#40E0D0]pc.get_name() == "thesprit"[/COLOR][COLOR=#DAA520] begin[/COLOR]
say("GM Paneline Hoşgeldiniz.")
[COLOR=#0000cd] end[/COLOR]
[COLOR=#0000cd] end[/COLOR]
[COLOR=#0000cd]end[/COLOR]
İş görürTeşekkürler
Teşekkürler anlatımlar devam edicek.

GM_Mark düzenlemesi yaparak halledebilirsin.Hacı Sadece Viplerin girebilecegi bi CH Yapmak İstiyorum Nasıl Yapabilirim ?
Son düzenleme:
Merhabalar size şimdi kişiye özel görev ile açılabilen GM paneli yazmayı öğretmeye çalışacağım.
Bunun yanında letter,info,button,local,if,elseif gibi komutlarıda anlatacağım.
​
- Aşağıdaki questimiz oluşturacağımız GM Panelimizin iskeletidir.
- when letter with pc.get_name() == "thesprit" begin kodları ile görevi başlattım yani when letter ile giriş yaparak görev şeklinde açılacağını belirttim.
- Turkuaz renk ile yazdığım yazı ile pc.get_name komutunu şart vererek kullanarak görevi sadece "thesprit" isimli oyuncunun açacağını belirttim.
- Kalın Altın renk ile yazılmış pc.is_gm komutuyla görevin sadece GM olan karektelere gelmesini sağladım.
- Kırmızı renk ile yazdığım alanda send_letter("Görev İsmi") komutunu kullanarak sol tarafta GM
anel isimli bir görev çıkarttım.
- Lacivert renk ile aldığım alanlar end komutlarını ekleyeceğiniz yerleri anlamanız içindi.
- ​Quest
- State
- When komutlarının herbiri için end yazarak aralığı kapatıyoruz.
- when info or button with pc.is_gm and pc.get_name() == "thesprit" begin komutlarıyla send_letter("Görev İsmi") komutuyla verdirdiğim göreve tıklayınca açılacak yazacak kodlar için başlattım ve info or button komutlarını kullandım.
Kod:[COLOR=#0000cd]quest gmpanel begin[/COLOR][COLOR=#0000cd] state start begin[/COLOR] [COLOR=#daa520] when letter with [B]pc.is_gm[/B] and [/COLOR][COLOR=#40e0d0]pc.get_name() == "thesprit"[/COLOR][COLOR=#daa520] begin[/COLOR] [COLOR=#ff0000] send_letter("GM:Panel")[/COLOR] [COLOR=#0000cd] end[/COLOR] [COLOR=#daa520] when info or button[/COLOR] [COLOR=#DAA520]with [/COLOR][B][COLOR=#daa520]pc.is_gm[/COLOR][/B][COLOR=#DAA520] and [/COLOR][COLOR=#40E0D0]pc.get_name() == "thesprit"[/COLOR][COLOR=#DAA520] begin[/COLOR] say("GM Paneline Hoşgeldiniz.") [COLOR=#0000cd] end[/COLOR] [COLOR=#0000cd] end[/COLOR] [COLOR=#0000cd]end[/COLOR]
Teşekkürler anlatımlar devam edicek.
GM_Mark düzenlemesi yaparak halledebilirsin.
nasıl yani hocam bi örnek gösterseniz
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 2
- Görüntüleme
- 115
- Cevaplar
- 2
- Görüntüleme
- 34
- Cevaplar
- 10
- Görüntüleme
- 338