Best Studio 1
Best Studio
berkmenoo 1
berkmenoo
InfernoShade 1
InfernoShade
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Agora Metin2 1
Agora Metin2
Bvural41 1
Bvural41
onur akbaş 1
onur akbaş
IronTalonX 1
IronTalonX
D 1
delimuratt
berzahx 1
berzahx
PrimeAC 1
PrimeAC
Hikaye Ekle

Para Kutusu Sistemi [C++, Pyhton, Lua]

  • Konuyu başlatan Konuyu başlatan Black Widow
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 54
  • Görüntüleme Görüntüleme 8K
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

Teşşekürler
 
Merhaba arkadaşlar, bugün sizlerle yeni bir sistem paylaşacağım.

Sistem tarafımca sıfırdan yazıldı, 1 harf bile alıntı yoktur.

Sistem Mantığı: 80010 numaralı bar kutusu içerisine üzerinizde mevcut olan parayı koyabilir ve tekrar geri alabilirsiniz. Ticareti yapılabilir, pazarda satılabilir, depolanabilir ve bunlar yapıldıktan sonra hiçbir şekilde değerini kaybetmez. Hoşunuza giderse eğer para kutusuna şifre seçeneğide ekleyebilirim. Şifre ticaret ve pazar ile farklı hesaplara aktarıldığında bile aktif olacaktır.

Source taraflı işlevlerde oluşabilecek hertürlü hatalar "syserr" dosyasına yazılacak şekilde ayarlandı.

Konu altında ek olarak dosya şeklinde anlatımda mevcut.

Not : Kullanacak arkadaşlar teşekkür eder ve kullanmayacak arkadaşlar ise gereksiz, boş yorum yapmazsa sevinirim.

questlua_item.cpp açılır

ve aratılır ;
Kod:
int item_get_cell(lua_State* L)

kod bloğu bitişine eklenir ;
Kod:
    int pc_para_degeri(lua_State* L)
    {
        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr()  ;
        
        if(ch->GetExchange() || ch->GetMyShop() || ch->GetShopOwner() || ch->IsOpenSafebox() || ch->IsCubeOpen())
        {
            ch->ChatPacket(CHAT_TYPE_INFO, "Depo / Market / Pazar Pencerelerini kapat.");
            lua_pushnumber(L, false);
            return 1;
        }
        
        CQuestManager& q = CQuestManager::instance();
        if (q.GetCurrentItem() && lua_isnumber(L,1))
        {
            int turkmmo = 1;
            long bardegeri = (long) lua_tonumber(L, 1);
            if (bardegeri >=1 && bardegeri < 2000000000 && ch->GetGold() >= bardegeri)
            {
                q.GetCurrentItem()->SetSocket(turkmmo, bardegeri);
                ch->PointChange(POINT_GOLD, -bardegeri, true);
            }
            else
            {
                sys_err("Bar sistemi: Para miktari hatali girildi!");
                lua_pushnumber(L, false);
                return 1;
            }
        }
        else
        {
            sys_err("Bar sistemi: Item yok veya para degeri girilmedi!");
            lua_pushnumber(L, false);
            return 1;
        }
        return 0;
    }


tekrar aratılır ;
Kod:
{ "get_cell",        item_get_cell        },

ve altına eklenir ;
Kod:
            { "para_degeri",    pc_para_degeri        },
root > uitooltip.py açılır

importlara en başa eklenir ;
Kod:
import translate

aratılır ;
Kod:
def __SetItemTitle(self, itemVnum, metinSlot, attrSlot):

ve içerisine eklenir ;
Kod:
        if 80010 == itemVnum:
            if metinSlot[1] == 0:
                self.AppendTextLine(translate.bar_bos, self.NEGATIVE_COLOR)
            else:
                self.AppendTextLine(translate.bar_dolu % localeInfo.NumberToMoneyString(metinSlot[1]), self.SPECIAL_TITLE_COLOR)
eb7cfe3f868a4cfe8731a0db68165ed6.png


root içerisine translate.py isminde bir dosya oluşturup içerisine ekleyin (varsa direk ekleyin)
not : verdiğim linkte hazır şekli mevcut.
Kod:
bar_bos="Mevcut Para : Henüz Girilmedi."
bar_dolu="Mevcut Para : %s"


locale_tr > item_list.txt eklenir;
Kod:
80010    ETC    icon/item/80006.tga

locale_tr > item_desc.txt eklenilir ;
Kod:
80010    Para Kutusu    Bu kutu içerisine para koyabilir ve paranızı tekrar geri alabilirsiniz.    Sağ tıklanılarak kullanılır.

locale_tr > item_proto 'ya eklenecek ;
Kod:
    <!--AddonType="0"--><Item vnum="80010"  name="Para Kutusu" gb2312name="Para Kutusu" type="18" subtype="0" weight="0" size="1" antiflag="74112" flag="8196" wearflag="0" immuneflag="0" gold="0" buy_price="0" limittype0="0" limitvalue0="0" limittype1="0" limitvalue1="0" applytype0="0" applyvalue0="0" applytype1="0" applyvalue1="0" applytype2="0" applyvalue2="0" value0="0" value1="0" value2="0" value3="0" value4="0" value5="0" socket0="0" socket1="0" socket2="0" socket3="0" socket4="0" socket5="0" refine_vnum="0" refine_set="0" magic_pct="0" specular="0" socket_pct="0" />

filezilla quest_functions dosyası içerisine eklenecek ;
Kod:
item.para_degeri

okutulacak lua dosyası ;
Kod:
quest bar_sistemi begin
    state start begin
        when 80010.use begin
            local gold = pc.get_gold()
            if item.get_socket(1) < 1 then
                say_title("Merhaba "..pc.get_name().."")
                say("") -- bosluk
                say(""..gold.." paranız bulunmakta.")
                say_reward("Bu kutu içerisine para koymak istiyor musun?")
                local seciyoruz = select("Evet","Hayır")
                if seciyoruz == 2 then return
                elseif seciyoruz == 1 then
                    say_title("Merhaba "..pc.get_name().."")
                    say("")
                    say_reward("Lütfen paketlemek istediğiniz para")
                    say_reward("miktarını giriniz.")
                    local para = tonumber (input())
                    
                    if para == "" or para == nil or para > 2000000000 or para < 1 then
                        say_title("Merhaba "..pc.get_name().."")
                        say("")
                        say_reward("Geçersiz bir değer girdiniz !")
                        return
                    elseif para > gold then
                        say_title("Merhaba "..pc.get_name().."")
                        say("")
                        say_reward("Malesef, üzerinizde bu kadar para yok!")
                        return
                    else
                        chat("İşlem tamamlandı.")
                        item.para_degeri(para)
                        return
                    end
                end
            else
                say_title("Merhaba "..pc.get_name().."")
                say("") -- bosluk
                say_reward(""..item.get_socket(1).." yang parayı çıkarmak istiyor musun ?")
                local cikariyoruz = select("Evet","Hayır")
                if cikariyoruz == 2 then return
                elseif cikariyoruz == 1 then
                    if gold+item.get_socket(1) > 2000000000 then
                        say_title("Merhaba "..pc.get_name().."")
                        say("") -- bosluk
                        say_reward("Envanterine 2 milyar para alamazsın !")
                        return
                    else
                        pc.give_gold(item.get_socket(1))
                        chat(""..item.get_socket(1).." yang envanterinize çıkartıldı.")
                        pc.remove_item(item.get_vnum(),pc.count_item(item.get_vnum()))
                        return
                    end
                end
            end
        end
    end
end


Navicat > item_proto'ya query olarak eklenecek ( yapamayan bir itemi kopyalayıp 80010 numara olarak değiştirip type kısmını 18 yapsın)
Kod:
INSERT INTO item_proto VALUES ('80010', 0x50617261204B7574757375, 0x50617261204B7574757375, '18', '0', '0', '1', '128', '0', '0', '', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '-1', '-1', '-1', '-1', '-1', '-1', '0', '0', '0');

Daha rahat ve hazır dosyalar için ;


Sisteme dair video ;

@karaca425; Sen mi sattın lan fikrimi :D

Bu arada emeğine sağlık. Yapmayı düşündüğüm bir sistemdi. Sadece mevcut parayı yazma kısmında sorun yaşadığım için tamamlayamamıştım. Tebrik ediyorum ve başarılarının devamını diliyorum.

Bu arada merak ettiğim bir şey var. Sistemde barın bir limiti var mı? Yoksa banka gibi limitsiz bir şekilde kullanılıyor mu?
 
Son düzenleme:
eyvallah yararlı
 
@karaca425; Sen mi sattın lan fikrimi :D

Bu arada emeğine sağlık. Yapmayı düşündüğüm bir sistemdi. Sadece mevcut parayı yazma kısmında sorun yaşadığım için tamamlayamamıştım. Tebrik ediyorum ve başarılarının devamını diliyorum.

Bu arada merak ettiğim bir şey var. Sistemde barın bir limiti var mı? Yoksa banka gibi limitsiz bir şekilde kullanılıyor mu?

Bu Sistem Saten EPvp De Türkçesi Kasa Sistemi Diye Geçiyor .d 2Yıl Önce Paylaşıldı. .d .d
 
bu şekilde yapsan daha güzel olur
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst