Geliştirilmiş [VIP] Madalyası quest

Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

SType2

Üye
Editör
Üye
Mesaj
123
Çözümler
2
Beğeni
116
Puan
774
Ticaret Puanı
0
Merhaba arkadaşlar geçen sefer açmış olduğum konuda belirtmiştim vip yüzük diye o konu üzerinden paylaşımı düzenleyip yayınlıcaktım fakat konu başlığının sorun çıkaracağını düşündüğüm için yeni konu açma kararı aldım. Her neyse lafı fazla dolandırmadan madalya ve özelliklerinden bahsedeyim

Madalya emek serverlarda para kazanmak isteyenler için edit item yerine gerçekten adetli olacağını düşündüğüm bi sistem üzerine yapılmıştır. (sonuç olarak bir gelir olmadan oyun ömrü ilerleyemez zevkine açan insanlar yok eskisi gibi) madalya tek kullanıma mahsustur tak çıkar (tecrübe yüzüğü) gibi olmasını istemedim açıkçası :)
7 gün sürelidir fakat bu 7 gün madalyayı açtığın anda başlamaktadır.

Madalya kullanıcıya :
3000 HP
140 savunma
60 saldırı değeri
10 yarı insan bonusları vermektedir.
(düzenlenebilir.)
ayrıca 100 m,İrade gücü yüzüğü ve ay yıldız savaşçısı kostümü + vermektedir. (düzenlenebilir)

Bay/Bayan olmak üzeri iki farklı madalya olarak kodlanmıştır. ben kendi düzenlediğim server fileste yeni item yapmak yerine gereksiz olduğunu düşündüğüm 2 itemi düzenliyerek yaptım altta icon dosyasını vericem isteyen o şekilde kullanabilir. :)
herhangi bir açığı olduğunu sanmıyorum yinede kesin konuşmamak gerekli :) fakat bug yapılması gibi bi seçenek yok çünkü madalyaya 2. kez tıklama şansı yakaladıklarında zaten vip üyesiniz! uyarısından başka bişey alamazlar :)

Resim 1 : İconlar
gX3plZ.png


Resim 2 : Quest
G38NB2.png


Resim 3 : Quest
OE1N0Z.png


Resim 4: Hata
yV71EL.png


Resim 5: Oyuna her girildiğinde bildirim.
znPLM7.png

Vip Madalya :
PHP:
Genişlet Daralt Kopyala
quest vip_user begin
    state start begin
        when login with pc.getqf("vip") == 1 begin -- her oyuna girdiğinde alttan yazı geçer.
            if get_time() > pc.getqf("vipsure") then
                pc.setqf("vipsure",0)
                pc.setqf("vip",0)
                chat(pc . get_name ( ) .. " VIP üyeliğinin süresi doldu. ")
            else
                local kalansure = pc.getqf("vipsure")-get_time()
                local hesapla = math.floor(kalansure/60/60)
                chat(pc . get_name ( ) .. " VIP üyeliğin "..hesapla.." saat sonra bitecek. ")
            end
        end
        when login with pc.getqf("vip")==1 and not npc . is_pc ( )begin
        end
        when 38010.use with pc.getqf("vip")==0 begin --- Erkek
            vip_isim = pc.get_name()
            say_title("VIP Sistemi")
            say_color("yellow","S-Type2 VIP üyelik size bir çok şey kazandıracak,")
            say_color("yellow","Bunlardan biri isminin başına VIP eki gelmesidir.")
            say_color("yellow","Ek olarak sana bir çok özellik eklenecek.")
            say_color("yellow","Oyun içinde VIP Uyelere ozel kostüm kazanacaksın.")
            say_color("yellow","Unutma Sadece 7 Günlüktür...")
            say_color("yellow","VIP olmak istiyor musun?")
            local s = select("Evet", "Hayır")
            if s == 1 then
                pc.remove_item(38010,1)
                say("VIP Bilgi    :")
                say("")
                say_color("green","Tebrikler" ..vip_isim)
                say_color("cyan","7 gün boyunca S-Type2 VIP üyesisin.")
                say_color("cyan","7 gün boyunca şu özelliklere sahip olacaksın;")
                say_color("cyan","VIP Tag")
                say_color("cyan","Savunma +140")
                say_color("cyan","Saldırı Değeri +60")
                say_color("cyan","Max.HP +3000")
                say_color("cyan","Yarı insanlara karşı güçlü +%10")
                say_color("cyan","100.000.000 Yang")
                say_color("cyan","VIP Kostüm")
                say_color("cyan","İrade Gücü Yüzüğü")
                say_color("green","VIP ünvanı 6 saat içerisinde isminin başına eklenecektir.")      
                say_color("cyan","VIP üyeliğin keyfini çıkarın.")
                notice_all("Tebrikler, " .. pc . get_name ( ) .. " S-Type2 VIP üyesi oldu.")
                notice_all("Kendisini tebrik edip bizi seçtikleri için kendisine teşekkür ediyoruz.")
                chat("Savunma +140")
                chat("Saldırı Değeri +60")
                chat("Max.HP +3000")
                chat("Yarı insanlara karşı güçlü +%10")
                chat("İyi oyunlar dileriz... S-Type2")
                pc.change_money ("100000000")
                pc . give_item2("41326",1)
                pc . give_item2("71148",1)
                affect.remove_collect()
                affect.remove_collect(apply.ATTBONUS_HUMAN,10,60*60*24*7)
                affect.add_collect(apply.ATT_GRADE_BONUS,60,60*60*24*7)
                affect.add_collect(apply.DEF_GRADE_BONUS,140,60*60*24*7)
                affect.add_collect(apply.MAX_HP,3000,60*60*24*7)
                pc.setqf("vip",1)
                pc.setqf("vipsure",get_time()+60*60*24*7) -- vip süresini belirlemek için +60*60*24*7 = 7 gün demektir.
            else
                say_title("VIP: ")
                say("VIP üyeliği almadığın için üzgünüz.")
                say("Umarız en kısa sürede VIP üyemiz olursun.")
            end
        end
        when login with pc.getqf("vip")==0 and not npc . is_pc ( )begin
        end
        when 38001.use with pc.getqf("vip")==0 begin --- Kadın
            vip_isim = pc.get_name()
            say_title("VIP Sistemi")
            say_color("green","Merhabalar,"..vip_isim)
            say_color("yellow","S-Type2 VIP üyelik size bir çok şey kazandıracak,")
            say_color("yellow","Bunlardan biri isminin başına VIP eki gelmesidir.")
            say_color("yellow","Ek olarak sana bir çok özellik eklenecek.")
            say_color("yellow","Oyun içinde VIP Uyelere ozel kostüm kazanacaksın.")
            say_color("yellow","Unutma Sadece 7 Günlüktür...")
            say_color("yellow","VIP olmak istiyor musun?")
            local s = select("Evet", "Hayır")
            if s == 1 then
                pc.remove_item(38001,1)
                say_color("green","VIP Bilgi    :")
                say("")
                say_color("green","Tebrikler" ..vip_isim)
                say_color("cyan","7 gün boyunca S-Type2 VIP üyesisin.")
                say_color("cyan","7 gün boyunca şu özelliklere sahip olacaksın;")
                say_color("cyan","VIP Tag")
                say_color("cyan","Savunma +140")
                say_color("cyan","Saldırı Değeri +60")
                say_color("cyan","Max.HP +3000")
                say_color("cyan","Yarı insanlara karşı güçlü +%10")
                say_color("cyan","100.000.000 Yang")
                say_color("cyan","VIP Kostüm")
                say_color("cyan","İrade Gücü Yüzüğü")
                say_color("green","VIP ünvanı 6 saat içerisinde isminin başına eklenecektir.")      
                say_color("cyan","VIP üyeliğin keyfini çıkarın.")
                notice_all("Tebrikler, " .. pc . get_name ( ) .. " S-Type2 VIP üyesi oldu.")
                notice_all("Kendisini tebrik edip bizi seçtikleri için kendisine teşekkür ediyoruz.")
                chat("Savunma +140")
                chat("Saldırı Değeri +60")
                chat("Max.HP +3000")
                chat("Yarı insanlara karşı güçlü +%10")
                chat("İyi oyunlar dileriz... S-Type2")
                pc.change_money ("100000000")
                pc . give_item2("41327",1)
                pc . give_item2("71148",1)
                affect.remove_collect()
                affect.remove_collect(apply.ATTBONUS_HUMAN,10,60*60*24*7)
                affect.add_collect(apply.ATT_GRADE_BONUS,60,60*60*24*7)
                affect.add_collect(apply.DEF_GRADE_BONUS,140,60*60*24*7)
                affect.add_collect(apply.MAX_HP,3000,60*60*24*7)
                pc.setqf("vip",1)
                pc.setqf("vipsure",get_time()+60*60*24*7) -- vip süresini belirlemek için +60*60*24*7 = 7 gün demektir.
            else
                say_title("VIP: ")
                say_color("red","VIP üyeliği almadığın için üzgünüz.")
                say_color("red","Umarız en kısa sürede VIP üyemiz olursun.")
            end
        end

        when 38010.use with pc.getqf("vip")==1 begin --- Erkek
            say_title("S-Type2 VIP Sistemi:")
            say("")
            say_color("red","Zaten VIP üyesisin.")
            local kalansure = pc.getqf("vipsure")-get_time()
            local hesapla = math.floor(kalansure/60/60)
            say(pc . get_name ( ) .. " VIP üyeliğinin bitmesine "..hesapla.." saat kaldı.")
        end
        when 38001.use with pc.getqf("vip")==1 begin --- Kadın
            say_title("S-Type2 VIP Sistemi:")
            say("")
            say_color("red","Zaten VIP üyesisin.")
            local kalansure = pc.getqf("vipsure")-get_time()
            local hesapla = math.floor(kalansure/60/60)
            say_color("green", pc . get_name ( ) .. " VIP üyeliğinin bitmesine "..hesapla.." saat kaldı.")
        end
    end
end

Questi okutmak için :
Filezilla : usr/game/share/locale/turkey/quest attıktan sonra
Putty : cd usr/game/share/locale/turkey/quest [ENTER]
./qc vip.lua [ENTER]
Önemli : Say_color kısmı eğer serverınızda renkli quest yazımı yok ise quest çalışmaz. O kısımları say olarak değiştirin veya renkli quest yazımı eklemek istiyorsanız açmış olduğum konuya bakınız. (Konuya gitmek için tıkla)

İtem Hakkında: benim kullandığım itemlerin ikiside yang paketiydi önceden :D o yüzden questte bulunan 38001 38010 kısımlarını kendinize göre düzenleyip istediğiniz yüzüğe vs vermenizi tavsiye ederim. Ama benimki gibi madalya şeklinde yapmak isteyenler olursa;

lazım olacak iki adet pack'i düzeltmeleri gerekir 1.si Locale_tr diğeri ise icon packi dir.
bu kısımlarda icon kısmına vericek olduğum vipicon.tga dosyasını atınız.

locale_tr de ise item_list kısmında eklemek istediğiniz itemi seçip sonunda mesela kendi yaptığım şekilde anlatayım orada ;

38001 ETC icon/item/vipicon.tga
38010 ETC icon/item/vipicon.tga

Şeklinde düzeltiniz.

itemin isminin oyunda değişmesi içinde locale_trden item_protoyu açıp değiştirmeniz gerekmektedir.

İcon Dosyası link :
Linkleri görebilmek için giriş yap veya kayıt ol.


ÖNEMLİ NOT : ANLAMADIĞINIZ YAPAMADIĞINIZ HERHANGİ BİR SORUNLA KARŞILAŞTIĞINIZDA LÜTFEN QUESTİ VS. HİÇE SAYMAK YERİNE MESAJ YOLU VEYA YORUM İLE SORUNUNUZU BELİRTİNİZ.

İYİ FORUMLAR :)
 
Son düzenleme:
Merhaba @SType2 , Oyuncuya [VIP] Tagını verdikten sonra kendi kendine Flood çekerek " vi***on" demekte bunun sebebi nedir?

molXGR.png


Ve icon dosya link kırık. :)
 
Son düzenleme:
Kostüm cinsiyeti için 2 adet madalya oluşturmanıza gerek yok, Quest kodlarında basit bir düzenleme ile bundan kurtulabilirsiniz.

Bkz.
QUEST:
Genişlet Daralt Kopyala
quest vip_user begin
    state start begin
        when login with pc.getqf("vip") == 1 begin -- her oyuna girdiğinde alttan yazı geçer.
            if get_time() > pc.getqf("vipsure") then
                pc.setqf("vipsure",0)
                pc.setqf("vip",0)
                chat(pc . get_name ( ) .. " VIP üyeliğinin süresi doldu. ")
            else
                local kalansure = pc.getqf("vipsure")-get_time()
                local hesapla = math.floor(kalansure/60/60)
                chat(pc . get_name ( ) .. " VIP üyeliğin "..hesapla.." saat sonra bitecek. ")
            end
        end
        when login with pc.getqf("vip")==1 and not npc . is_pc ( )begin
        end
        when 38010.use with pc.getqf("vip")==0 begin --- Erkek
            vip_isim = pc.get_name()
            say_title("VIP Sistemi")
            say_color("yellow","S-Type2 VIP üyelik size bir çok şey kazandıracak,")
            say_color("yellow","Bunlardan biri isminin başına VIP eki gelmesidir.")
            say_color("yellow","Ek olarak sana bir çok özellik eklenecek.")
            say_color("yellow","Oyun içinde VIP Uyelere ozel kostüm kazanacaksın.")
            say_color("yellow","Unutma Sadece 7 Günlüktür...")
            say_color("yellow","VIP olmak istiyor musun?")
            local s = select("Evet", "Hayır")
            if s == 1 then
                pc.remove_item(38010,1)
                say("VIP Bilgi    :")
                say("")
                say_color("green","Tebrikler" ..vip_isim)
                say_color("cyan","7 gün boyunca S-Type2 VIP üyesisin.")
                say_color("cyan","7 gün boyunca şu özelliklere sahip olacaksın;")
                say_color("cyan","VIP Tag")
                say_color("cyan","Savunma +140")
                say_color("cyan","Saldırı Değeri +60")
                say_color("cyan","Max.HP +3000")
                say_color("cyan","Yarı insanlara karşı güçlü +%10")
                say_color("cyan","100.000.000 Yang")
                say_color("cyan","VIP Kostüm")
                say_color("cyan","İrade Gücü Yüzüğü")
                say_color("green","VIP ünvanı 6 saat içerisinde isminin başına eklenecektir.")   
                say_color("cyan","VIP üyeliğin keyfini çıkarın.")
                notice_all("Tebrikler, " .. pc . get_name ( ) .. " S-Type2 VIP üyesi oldu.")
                notice_all("Kendisini tebrik edip bizi seçtikleri için kendisine teşekkür ediyoruz.")
                chat("Savunma +140")
                chat("Saldırı Değeri +60")
                chat("Max.HP +3000")
                chat("Yarı insanlara karşı güçlü +%10")
                chat("İyi oyunlar dileriz... S-Type2")
                pc.change_money ("100000000")
                cinsiyet = pc.get_sex()
                if cinsiyet == 1 then
                    pc . give_item2("41326",1)  // Karakter Erkekse verilecek kostüm kodunu giriniz.
                else 
                    pc . give_item2("41327",1) // Karakter Kadınsa verilecek kostüm kodunu giriniz.
                end 
                pc . give_item2("71148",1)
                affect.remove_collect()
                affect.remove_collect(apply.ATTBONUS_HUMAN,10,60*60*24*7)
                affect.add_collect(apply.ATT_GRADE_BONUS,60,60*60*24*7)
                affect.add_collect(apply.DEF_GRADE_BONUS,140,60*60*24*7)
                affect.add_collect(apply.MAX_HP,3000,60*60*24*7)
                pc.setqf("vip",1)
                pc.setqf("vipsure",get_time()+60*60*24*7) -- vip süresini belirlemek için +60*60*24*7 = 7 gün demektir.
            else
                say_title("VIP: ")
                say("VIP üyeliği almadığın için üzgünüz.")
                say("Umarız en kısa sürede VIP üyemiz olursun.")
            end
        end


        when 38010.use with pc.getqf("vip")==1 begin --- Erkek
            say_title("S-Type2 VIP Sistemi:")
            say("")
            say_color("red","Zaten VIP üyesisin.")
            local kalansure = pc.getqf("vipsure")-get_time()
            local hesapla = math.floor(kalansure/60/60)
            say(pc . get_name ( ) .. " VIP üyeliğinin bitmesine "..hesapla.." saat kaldı.")
        end
 
Belirtilen İcon Dosyası linki kırık olduğundan konu kilitlenmiştir,
Düzenleme yaptığınız takdirde rapor ederseniz konu tekrardan açılabilir,
İyi forumlar dilerim.
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst