Çözüldü Cevher işleme sorunu metin taşları görünmüyor

Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

NIGHTMT2

Üye
Üye
Mesaj
125
Çözümler
12
Beğeni
34
Puan
89
Ticaret Puanı
0
Merhaba arkadaşlar cevher işleyicilerde işleme işlemi yaparken metin taşı istiyor ama npc'de açılan ekrana metin taşları geçmiyor bunu nasıl ayarlarım acaba
yada elinde çalışan questi olan varsa paylaşırsa çok memnun olurum..
0323_080948.jpg
 
Çözüm
Hasan fidanın paylaştığı k envanter için sorun çözümü budur.

uiSelectItem.py
C++:
        for i in xrange(player.INVENTORY_PAGE_SIZE*player.INVENTORY_PAGE_COUNT):
Değiştir
C++:
        for i in xrange(player.INVENTORY_SLOT_COUNT):
K envanterindeki taşları mı sürükleyemiyorsunuz?
 
Hangi k envanteri kullanıyorsunuz bilmiyorum ama aklıma iki senaryo geliyor. Eğer her k envanteri için farklı window türü tanımlanmışsa sürüklemeye çalıştığınız pencerede bu tanımlı olmayabilir. Birde k envanter ekstra pos ekliyor. Clientinizi debug modda derleyip konsoldan hangi fonksiyonların çalıştığına bakabilirsiniz.
 
Hangi k envanteri kullanıyorsunuz bilmiyorum ama aklıma iki senaryo geliyor. Eğer her k envanteri için farklı window türü tanımlanmışsa sürüklemeye çalıştığınız pencerede bu tanımlı olmayabilir. Birde k envanter ekstra pos ekliyor. Clientinizi debug modda derleyip konsoldan hangi fonksiyonların çalıştığına bakabilirsiniz.
kanka o pencere sürükle bırak penceresi değil zaten otomatik görüyor taşları ve orda çıkıyor bence sorun quest ile alakalı olabilir ama çözemedim
taşları envaterden değil k envaterden çekmesi için bir yerden bişi yapılmalı ama ne işte :d
 
İsterseniz kodlarınızı konuya dahil edin belki bilen arkadaşların yardımı olabilir. Şuan sadece olası sorunlar üzerinden fikir yürüyorum. :)
 
Lua (Quest):
quest guild_building_melt begin
    state start begin
        function GetOreRefineCost(cost)
            if pc.empire != npc.empire then
                return 3 * cost
            end
            if pc.get_guild() == npc.get_guild() then
                return cost * 0.9
            end
            return cost
        end
        function GetOreRefineGoodPct()
            return 60
        end
        function GetOreRefineBadPct()
            return 30
        end
        function GetMyRefineNum(race)
            return race - 20060 + 50601
        end
        function IsRefinableRawOre(vnum)
            return vnum >= 50601 and vnum <= 50613
        end
        function DoRefineDiamond(pct)
            local from_postfix
            local from_name = item_name(item.vnum)
            local to_vnum = item.vnum + 20
            local to_name = item_name(to_vnum)
            local to_postfix
            if under_han(from_name) then
                from_postfix = ""
            else
                from_postfix = ""
            end
            if under_han(to_name) then
                to_postfix = ""
            else
                to_postfix = ""
            end
            say("100 " .. from_name .. from_postfix .. " toplaman lazım ki ")
            say(to_name .. to_postfix .. "üretimi yapabilesin.")
            if item.count >= 100 then
                say("Başarı ihtimalin"..pct.."%."..guild_building_melt.GetOreRefineCost(10000).." Yang gerekli.")
                say("Denemek istiyormusun?")
                local s = select("Evet", "Hayır")
                if s == 1 then
                    if pc.get_gold() < guild_building_melt.GetOreRefineCost(10000) then
                        say("Daha çok Yang lazım.")
                        return
                    end
                    if pc.diamond_refine(10000, pct) then
                        say("Tebrik ederim. Cevherler başarıyla işlendi. şimdi senin:")
                        say_item(to_name, to_vnum, "")
                    else
                        say("Cevher işlenme olayı başarısız.")
                    end
                end
            else
                say("100 tane topla...")
            end
        end
        function DoRefine(pct)
            local from_postfix
            local from_name = item_name(item.vnum)
            local to_vnum = item.vnum + 20
            local to_name = item_name(to_vnum)
            local to_postfix
            if under_han(from_name) then
                from_postfix = ""
            else
                from_postfix = ""
            end
            if under_han(to_name) then
                to_postfix = ""
            else
                to_postfix = ""
            end
            say("Önce 100 " .. from_name .. from_postfix .. "toplaman lazım ki")
            say("Ruh Taşı +0, Ruh Taşı +1 veya Ruh Taşı +2")
            say(to_name .. to_postfix .. "üretebilesin.")
            if item.count >= 100 then
                say("Başarı ihtimalin"..pct.."%."..guild_building_melt.GetOreRefineCost(3000).." Yang ödemen gerekiyor.")
                say("Denemek istiyor musun?")
                local s = select("Evet", "Hayır")
                if s == 1 then
                    if pc.get_gold() < guild_building_melt.GetOreRefineCost(3000) then
                        say("Yeterli Yang yok.")
                        return
                    end
                    local selected_item_cell = select_item()
                    if selected_item_cell == 0 then
                        say("Bana meteoridleri göster.")
                        return
                    end
                    local old_item = item.get_id()
                    if not item.select_cell(selected_item_cell) then
                        say("Bu istediğimiz malzeme değil.")
                        return
                    end
                    -- checken, ob der meteorit ist
                    if item.vnum < 28000 or item.vnum >= 28300 then
                        say("Bunu doğru seçmedin.")
                        return
                    end
                    item.select(old_item)
                    if pc.ore_refine(3000, pct, selected_item_cell) then
                        say("Tebrik ederim, islem tamamlandi.Sonuç:")
                        say_item(to_name, to_vnum, "")
                    else
                        say("İşlem Başarılı olmadı.")
                    end
                end
            else
                say("100 tane topla.")
            end
        end
        when
            20060.take or
            20061.take or
            20062.take or
            20063.take or
            20064.take or
            20065.take or
            20066.take or
            20067.take or
            20068.take or
            20069.take or
            20070.take or
            20071.take or
            20072.take
            with guild_building_melt.GetMyRefineNum(npc.race) == item.vnum
        begin
            if item.vnum == 50601 then
                guild_building_melt.DoRefineDiamond(guild_building_melt.GetOreRefineGoodPct())
            else
                guild_building_melt.DoRefine(guild_building_melt.GetOreRefineGoodPct())
            end
        end
        when
            20060.take or
            20061.take or
            20062.take or
            20063.take or
            20064.take or
            20065.take or
            20066.take or
            20067.take or
            20068.take or
            20069.take or
            20070.take or
            20071.take or
            20072.take
            with guild_building_melt.IsRefinableRawOre(item.vnum) and
guild_building_melt.GetMyRefineNum(npc.race) != item.vnum
        begin
            if item.vnum == 50601 then
                guild_building_melt.DoRefineDiamond(guild_building_melt.GetOreRefineBadPct())
            else
                guild_building_melt.DoRefine(guild_building_melt.GetOreRefineBadPct())
            end
        end
        when
            20060.click or
            20061.click or
            20062.click or
            20063.click or
            20064.click or
            20065.click or
            20066.click or
            20067.click or
            20068.click or
            20069.click or
            20070.click or
            20071.click or
            20072.click
            with npc.get_guild() == pc.get_guild() and pc.isguildmaster()
        begin
            say(" 3.000.000 Yang karşılığında iyi bir kimyager kullanabilirsin.")
            if pc.get_gold() < 3000000 then
                say("3.000.000 Yang getir.")
            else
                say("Hangi tür üzerinde çalışan kimyager istiyorsun?")
                local sel = 0
                local timetable1 = {"Elmas", "Fosiller", "Bakır", "Gümüş", "Altın", "Yeşim", "Devam", "Kapat"}
                local valuetable1 = {14043, 14045, 14046, 14047, 14048, 14049, 0, -1}
                local timetable2 = {"Abanoz", "İnci", "Beyaz Altın", "Kristal", "Ametist", "Elmas", "Devam", "Kapat"}
                local valuetable2 = {14050, 10451, 14052, 14053, 14054, 14055, 0, -1}
                repeat
                        local s = select_table(timetable1)
                        sel = valuetable1[s]
                        if sel == 0 then
                                local s = select_table(timetable2)
                                sel = valuetable2[s]
                        end
                until sel != 0
                if sel != -1 then
                    npc_num = sel + 20060 - 14043
                    if npc_num == npc.get_race() then
                        say("Bu malzeme ile çalısması mümkün değil.")
                    else
                        pc.changegold(-3000000)
                        building.reconstruct(sel)
                    end
                else
                    say("Kapat")
                end
            end
        end
    end
end
 
En son bir moderatör tarafından düzenlenmiş:
Sorun cevher işlemesi için açılan pencereye K envanterin taş slotlarının eklenmesi gerek. Py tarafına uyarlama yapıldığı an sorun çözülcektir. Eve geçince yardımcı olacağım.
 
Bunun mevzusu malesef py ile çözülcek gibi değil.
Kodları takip ederek bu bölümü bulabildim ve burda taşları normal envanterden çektiriyor.
Biz bunu k envanterdeki envanterden çektirmeye çalışıyoruz.

Dipnot;
Çalışmadı, bakmaya devam :)

questlua_pc.cpp açılır ve aratılır.

C++:
    int pc_ore_refine(lua_State* L)

içinde bulunur

C++:
        LPITEM metinstone_item = ch->GetInventoryItem(metinstone_cell);

değiştirilir

C++:
        LPITEM metinstone_item = ch->GetStoneInventoryItem(metinstone_cell);
 
Bunun mevzusu malesef py ile çözülcek gibi değil.
Kodları takip ederek bu bölümü bulabildim ve burda taşları normal envanterden çektiriyor.
Biz bunu k envanterdeki envanterden çektirmeye çalışıyoruz.

Dipnot;
Çalışmadı, bakmaya devam :)

questlua_pc.cpp açılır ve aratılır.

C++:
    int pc_ore_refine(lua_State* L)

içinde bulunur

C++:
        LPITEM metinstone_item = ch->GetInventoryItem(metinstone_cell);

değiştirilir

C++:
        LPITEM metinstone_item = ch->GetStoneInventoryItem(metinstone_cell);
:( src yok kanka be pufff
 
:( src yok kanka be pufff
Source olmadan bu düzenlemeleri yapamazsanız. Bir süredir konularınızı takip ediyorum ancak hep bir cevap ile karşılaşıyorum. Önünüzde iki seçenek var ya source olan bir files kullanacaksınız ya da mevcut filesin srcyi isteyeceksiniz
 
Source olmadan bu düzenlemeleri yapamazsanız. Bir süredir konularınızı takip ediyorum ancak hep bir cevap ile karşılaşıyorum. Önünüzde iki seçenek var ya source olan bir files kullanacaksınız ya da mevcut filesin srcyi isteyeceksiniz
kanka bilişim yapıyor src işlemlerimi ama şu şekilde mesela 2-3 sorun biriktiriyorum not alıyorum 50-100tl veriyorum yapıyorlar
biraz maddi durum sorunu var.d sonra alacam src'yi zaten 1500tl gibi bi miktar istediler halledecez onu şuan çalıştığım yer kapalı covid'ten dolayı
onun için riske girmmek istemiyorum maddi açıdan .d
 
Yani oldschool bi sunucu açmak için bu sistemlere gereğin yok + böyle bir files için 1500 tl vermeyede gerek yok evet ortada bi emekle yapılmış files mevcut lakin kendin zaten evde isen maximum 1 ay da herşeyi yaparsın.
 
Merhaba, benim k envanterimin fonksiyonu da bu şekilde "GetStoneInventoryItem" fakat hala taşlar gözükmüyor çözüldü mü ? @Whistle @Forgiven
Bunun mevzusu malesef py ile çözülcek gibi değil.
Kodları takip ederek bu bölümü bulabildim ve burda taşları normal envanterden çektiriyor.
Biz bunu k envanterdeki envanterden çektirmeye çalışıyoruz.

Dipnot;
Çalışmadı, bakmaya devam :)

questlua_pc.cpp açılır ve aratılır.

C++:
    int pc_ore_refine(lua_State* L)

içinde bulunur

C++:
        LPITEM metinstone_item = ch->GetInventoryItem(metinstone_cell);

değiştirilir

C++:
        LPITEM metinstone_item = ch->GetStoneInventoryItem(metinstone_cell);
 
Üstünde durmadım bu problemin ama bi kaç güne durmam gerekicek o zaman dönüş sağlarım buraya.
Merhaba,
Artı Basmada İtem Sayısı Gösterme
bu sistemde
have_count = player.GetItemCountByVnum(vnum)
gibi fonksiyonlar kullanılmış yani k envanterdeki itemi de görebiliyor bu şekilde ve sorunsuz çalıştırdım
anladığım kadarıyla player. dediği yerde oyuncuya ait itemleri GetItemCountByVnum(vnum) ile çağırabiliyorsak burada da uygulanabilir mi bu tarz bir yöntem?
 
Hasan fidanın paylaştığı k envanter için sorun çözümü budur.

uiSelectItem.py
C++:
        for i in xrange(player.INVENTORY_PAGE_SIZE*player.INVENTORY_PAGE_COUNT):
Değiştir
C++:
        for i in xrange(player.INVENTORY_SLOT_COUNT):
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst