Çözüldü Won sistemi syserr

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ı.

MEKA

Discord: mekaprojects
Süper Moderatör
Premium Üye
Grafiker
Geliştirici
Yardımsever Üye
Editör
Mesaj
2.746
Çözümler
286
Beğeni
1.989
Puan
1.349
Won sistemi ekledim pazar kurunca böyle bir syser veriyor channel 1 ve oyundan atıyor hesabı

Kod:
SYSERR: Feb 13 16:35:52 :: heart_idle: losing 55 seconds. (lag occured)
SYSERR: Feb 13 18:23:55 :: Process: SEQUENCE 6abf0400 mismatch 0x6a != 0x25 header 55
SYSERR: Feb 13 18:23:55 :: Process: SEQUENCE_LOG [TESTCHAR]-------------
    [007 : 0xf3]
    [007 : 0xa8]
    [007 : 0xdc]
    [007 : 0x7]
    [007 : 0x76]
    [007 : 0x72]
    [007 : 0x78]
    [007 : 0xa7]
    [007 : 0xa]
    [007 : 0x18]
    [007 : 0x84]
    [007 : 0xc8]
    [007 : 0x3b]
    [007 : 0xd4]
    [007 : 0x89]
    [007 : 0x41]
    [007 : 0x18]
    [007 : 0xef]
    [007 : 0x9c]
    [007 : 0x48]
    [055 : 0x6a]

SYSERR: Feb 13 18:26:10 :: Process: SEQUENCE 6c3e0400 mismatch 0xf7 != 0x1c header 57
SYSERR: Feb 13 18:26:10 :: Process: SEQUENCE_LOG [TESTCHAR2]-------------
    [109 : 0xaf]
    [006 : 0xca]
    [241 : 0x8a]
    [010 : 0xcf]
    [007 : 0x48]
    [007 : 0xa7]
    [007 : 0x54]
    [007 : 0xc7]
    [007 : 0xd7]
    [007 : 0xdf]
    [007 : 0x1]
    [003 : 0x25]
    [056 : 0x72]
    [057 : 0xf7]
 
Çözüm
0 yanga nereden item alınmıyor? NPC'lerden mi?

Syserrlerin won sistemi ile alakası yok.
Birisi safebox'a veri kaydederken daha önce kayıtlı olan veri olduğu için hata vermiş diğeri de money_log tablosunda sütünlar uyuşmuyor.
0 yang çözümünü burada paylaştım NPC 0 Yang İtem Almama - Yetersiz Yang Fix

Statüler felan kafayı yemiş -lere felan düşmüş tüm hesapları logları vs siliyorum tekrar test edecem
Moneylog kısmına gelirsek bende bulunan tablolar

VALUES DELAYED time vnum pid

log.cpp
C++:
void LogManager::MoneyLog(BYTE type, DWORD vnum, int gold)
{
    LOG_LEVEL_CHECK_N_RET(LOG_LEVEL_MAX);
    if (type == MONEY_LOG_RESERVED || type >= MONEY_LOG_TYPE_MAX_NUM)
    {
        sys_err("TYPE ERROR: type %d vnum %u gold %d", type...
game.core veriyor mu?
nasıl anlarım verip vermediğini ve chleri kapatmıyor sadece o hesap oyundan çıkıyor

Edit : NPCden item almaya çalışırken bu syserri veriyor client

Kod:
0213 18:51:08854 :: Traceback (most recent call last):

0213 18:51:08854 ::   File "ui.py", line 1915, in OnUnselectItemSlot

0213 18:51:08855 ::   File "ui.py", line 87, in __call__

0213 18:51:08855 ::   File "ui.py", line 78, in __call__

0213 18:51:08855 ::   File "uiShop.py", line 370, in UnselectItemSlot

0213 18:51:08855 ::   File "uiShop.py", line 425, in AskBuyItem

0213 18:51:08855 ::   File "localeInfo.py", line 984, in DO_YOU_BUY_ITEM_NEW

0213 18:51:08855 :: NameError
0213 18:51:08855 :: :
0213 18:51:08855 :: global name 'DO_YOU_BUY_ITEM4' is not defined
0213 18:51:08855 ::
 
locale_game.txt içinde şu değeri kontrol edin: DO_YOU_BUY_ITEM4
 
locale_game.txt içinde şu değeri kontrol edin: DO_YOU_BUY_ITEM4
Ekli değildi ekledim böyle bir hata vermeye başladı bu seferde

Won Sistemi :
Linkleri görebilmek için giriş yap veya kayıt ol.

Kod:
0213 19:43:22121 :: Traceback (most recent call last):

0213 19:43:22121 ::   File "ui.py", line 1915, in OnUnselectItemSlot

0213 19:43:22121 ::   File "ui.py", line 87, in __call__

0213 19:43:22121 ::   File "ui.py", line 78, in __call__

0213 19:43:22121 ::   File "uiShop.py", line 370, in UnselectItemSlot

0213 19:43:22122 ::   File "uiShop.py", line 425, in AskBuyItem

0213 19:43:22122 ::   File "localeInfo.py", line 986, in DO_YOU_BUY_ITEM_NEW

0213 19:43:22122 :: TypeError
0213 19:43:22122 :: :
0213 19:43:22122 :: not all arguments converted during string formatting
0213 19:43:22122 ::
 
root/localeInfo.py'de 986. satırı kontrol edin. won sistemi ile beraber satın alma cümlesi değişiyordu
 
root/localeInfo.py'de 986. satırı kontrol edin. won sistemi ile beraber satın alma cümlesi değişiyordu
Syserr kalktı fakat npcden item alınmıyor

Python:
    if app.ENABLE_CHEQUE_SYSTEM:
        def DO_YOU_BUY_ITEM_NEW(buyItemName, buyItemCount, buyItemPrice, buyItemCheque) :
            if buyItemCheque > 0:
                if buyItemCount > 1 :
                    return DO_YOU_BUY_ITEM4 % ( buyItemName, buyItemCount, buyItemCheque, buyItemPrice )
                else:
                    return DO_YOU_BUY_ITEM3 % ( buyItemName, buyItemCheque, buyItemPrice )
            else:
                if buyItemCount > 1 :
                    return DO_YOU_BUY_ITEM2 % ( buyItemName, buyItemCount, buyItemPrice )
                else:
                    return DO_YOU_BUY_ITEM1 % ( buyItemName, buyItemPrice )
       
        def NumberToChequeString(n) :
            if n <= 0 :
                return "0 %s" % (CHEQUE_SYSTEM_UNIT_WON)
            cheque = str(n)
            return "%s %s" % (cheque, CHEQUE_SYSTEM_UNIT_WON)

        def NumberToMoney(n) :
            if n <= 0 :
                return "0"

            return "%s" % ('.'.join([ i-3<0 and str(n)[:i] or str(n)[i-3:i] for i in range(len(str(n))%3, len(str(n))+1, 3) if i ]))

uishop'a eklediğim kodlar
Python:
find :

itemPrice = shop.GetItemPrice(slotPos)

add after it :

        if app.ENABLE_CHEQUE_SYSTEM:
            itemCheque = shop.GetItemCheque(slotPos)
           
           
find :
itemBuyQuestionDialog.SetText(localeInfo.DO_YOU_BUY_ITEM(itemName, itemCount, localeInfo.NumberToMoneyString(itemPrice)))

replace it with :

        if app.ENABLE_CHEQUE_SYSTEM:
            itemBuyQuestionDialog.SetText(localeInfo.DO_YOU_BUY_ITEM_NEW(itemName, itemCount, localeInfo.NumberToMoney(itemPrice), localeInfo.str(itemCheque)))
        else:
            itemBuyQuestionDialog.SetText(localeInfo.DO_YOU_BUY_ITEM(itemName, itemCount, localeInfo.NumberToMoneyString(itemPrice)))
 
Server kısmından kaynaklı olabilir. Won sistemine sahip bi filesi indirerek karşılaştırma yapabilirsiniz.
 
Çevrimdışı pazar mı normal pazar mı?
çevrim dışını ayarlamadım fakat onu kurarkende oyundan atıyor normal pazarı kurarkende itemi koyuyorsun yang won yazıyorsun pazarı açmak için tamama basınca oyundan atıyor hesabı ve channel 1e o gösterdiğimde syserri veriyor
 
Büyük ihtimal gönderilen packet verisi hatalı olduğu için atıyor. Pazar kurarken bilgileri servere gönderen struct yapısı var;
C++:
struct packet_shop_item
{
    DWORD       vnum;
    DWORD       price;
    BYTE        count;
    BYTE        display_pos;
    long    alSockets[ITEM_SOCKET_MAX_NUM];
    TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_MAX_NUM];
};

Price kısmı normal yang olan yer. Bunun altında wonla ilgili bir şey daha eklenmesi gerek. Client ve server içinde ki packet structları uyumlu olması gerekiyor.

Bu konuda önereceğim şey ise won sistemi ekli olan herhangi bir filesi incelemeniz.
 
zaten karşılaştırdım fakat sorunu çözemiyorum
struct packet_shop_item
bunada baktım game game packet.h ile client gametype.h içerisinde aynı kod mevcut
 
En son bir moderatör tarafından düzenlenmiş:
common/tables.h şu packeti de kontrol ediniz.
C++:
typedef struct SShopItemTable
{
    DWORD        vnum;
    BYTE        count;

    TItemPos    pos;            // PC »óÁ¡¿¡¸¸ ÀÌ¿ë
    DWORD        price;    // PC, shop_table_ex.txt »óÁ¡¿¡¸¸ ÀÌ¿ë
    BYTE        display_pos; // PC, shop_table_ex.txt »óÁ¡¿¡¸¸ ÀÌ¿ë, º¸ÀÏ À§Ä¡.
} TShopItemTable;

Bunda da won için değerinin olması gerek. Bunun dışında clientti de kontrol edin. Verileri doğru ekliyor mu vs.

Hiçbir syserr vermeden oyundan atmasının sebebi client ile servere gönderilen verilerde sorun oluşması. Bi tutarsızlık mevcut. Won sistemi düzgün çalışan bir sürü files var. Onları kontrol etmenizi öneririm. :)
 
SShopItemTable kısmı
tables.h içerisinde
C++:
    BYTE        cheque_price;

packet.h içerisinde
C++:
    short        cheque_price;
bu yüzden öyle bir problem yaşatıyor olabilir mi tüm short olanları BYTE çevirmelimiyim 999won olduğu için böyle kullanılmış olabilir bilmiyorum tam olarak
 
Büyük ihtimal. Veri türleri uymazsa direk oyundan atar sistem. O kısımları düzenleyin isterseniz :)
 
Büyük ihtimal. Veri türleri uymazsa direk oyundan atar sistem. O kısımları düzenleyin isterseniz :)
Pazar felan kuruluyor won dönüşmüyor questten questi deniyecem

Kod:
SYSERR: Feb 13 23:46:24 :: heart_idle: losing 44 seconds. (lag occured)
SYSERR: Feb 13 23:46:58 :: GetValidLocation: cannot find sectree_map by map index 256
SYSERR: Feb 13 23:46:58 :: PlayerLoad: InputDB:PlayerLoad : cannot find valid location 121113856 x 244547328 (name: TEST)
SYSERR: Feb 13 23:50:58 :: GetServerLocation: location error name MEKA mapindex 0 -83882328 x 1063 empire 3
şşöyle bi channel 1de syserr var packetleri değiştirdik diye mi ?
 
Bunların onla alakalı olacağını sanmıyorum. Pazar sorunu çözüldü mü?
 
Test ettim şuan herhangi bi sorun yok karşılaştığım 1 tane sorun var
1.si 0 yang itemler satın alınmıyor yang yetersiz hatası veriyor
onun dışında bi hatayla karşılaşmadım syserrler dışında

Kod:
SYSERR: Feb 13 23:46:24 :: heart_idle: losing 44 seconds. (lag occured)
SYSERR: Feb 13 23:46:58 :: GetValidLocation: cannot find sectree_map by map index 256
SYSERR: Feb 13 23:46:58 :: PlayerLoad: InputDB::PlayerLoad : cannot find valid location 121113856 x 244547328 (name: TEST)
SYSERR: Feb 13 23:50:58 :: GetServerLocation: location error name TESTmapindex 0 -83882328 x 1063 empire 3
SYSERR: Feb 13 23:53:48 :: RunState: LUA_ERROR: [string "butun_binekler"]:35: attempt to call global `input_number' (a nil value)
SYSERR: Feb 13 23:53:48 :: WriteRunningStateToSyserr: LUA_ERROR: quest butun_binekler.start click
SYSERR: Feb 13 23:53:54 :: RunState: LUA_ERROR: [string "butun_binekler"]:35: attempt to call global `input_number' (a nil value)
SYSERR: Feb 13 23:53:54 :: WriteRunningStateToSyserr: LUA_ERROR: quest butun_binekler.start click
SYSERR: Feb 13 23:54:10 :: RunState: LUA_ERROR: [string "butun_binekler"]:35: attempt to call global `input_number' (a nil value)
SYSERR: Feb 13 23:54:10 :: WriteRunningStateToSyserr: LUA_ERROR: quest butun_binekler.start click
SYSERR: Feb 13 23:54:17 :: RunState: LUA_ERROR: [string "butun_binekler"]:8: attempt to call global `input_number' (a nil value)
SYSERR: Feb 13 23:54:17 :: WriteRunningStateToSyserr: LUA_ERROR: quest butun_binekler.start click
SYSERR: Feb 13 23:54:52 :: GetValidLocation: cannot find tree by 248098816 71260416 (map index 1)
SYSERR: Feb 13 23:54:52 :: PlayerLoad: InputDB::PlayerLoad : cannot find valid location 248098816 x 71260416 (name: TEST)
SYSERR: Feb 13 23:54:53 :: RunState: LUA_ERROR: [string "butun_binekler"]:35: attempt to call global `input_number' (a nil value)
SYSERR: Feb 13 23:54:53 :: WriteRunningStateToSyserr: LUA_ERROR: quest butun_binekler.start click
SYSERR: Feb 13 23:56:19 :: RunState: LUA_ERROR: [string "butun_binekler"]:35: attempt to call global `input_number' (a nil value)
SYSERR: Feb 13 23:56:19 :: WriteRunningStateToSyserr: LUA_ERROR: quest butun_binekler.start click
SYSERR: Feb 14 01:37:07 :: RunState: LUA_ERROR: [string "butun_binekler"]:10: attempt to call global `numberToDots' (a nil value)
SYSERR: Feb 14 01:37:07 :: WriteRunningStateToSyserr: LUA_ERROR: quest butun_binekler.start click
SYSERR: Feb 14 01:37:10 :: RunState: LUA_ERROR: [string "butun_binekler"]:10: attempt to call global `numberToDots' (a nil value)
SYSERR: Feb 14 01:37:10 :: WriteRunningStateToSyserr: LUA_ERROR: quest butun_binekler.start click
SYSERR: Feb 14 01:44:12 :: GetServerLocation: location error name TEST mapindex 0 671092390 x 1065 empire 3

game99
Kod:
SYSERR: Feb 14 00:45:28 :: ChildLoop: AsyncSQL: query failed: Column count doesn't match value count at row 1 (query: INSERT DELAYED INTO money_log VALUES (NOW(), 2, 25040, -5000) errno: 1136)
SYSERR: Feb 14 00:45:28 :: ChildLoop: AsyncSQL: query failed: Column count doesn't match value count at row 1 (query: INSERT DELAYED INTO money_log VALUES (NOW(), 2, 25041, -5000) errno: 1136)

db
Kod:
SYSERR: Feb 13 23:54:28 :: ChildLoop: AsyncSQL: query failed: Duplicate entry '1' for key 'PRIMARY' (query: INSERT INTO safebox (account_id, size) VALUES(1, 1) errno: 1062)
SYSERR: Feb 13 23:54:36 :: ChildLoop: AsyncSQL: query failed: Duplicate entry '1' for key 'PRIMARY' (query: INSERT INTO safebox (account_id, size) VALUES(1, 1) errno: 1062)


NOT : Bu syserrler won sisteminden önce yoktu
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst