Yardım Switchbot Reboot'dan Sonra İtem Kaybolması Sorunu

  • Konuyu açan Konuyu açan Sparkz
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 13
  • Gösterim Gösterim 147
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

Sparkz

Üye
Üye
Mesaj
41
Beğeni
10
Puan
71
Ticaret Puanı
0
Merhaba,

Sansi switchbot sistemi yükledim herşey tamam problemleri hallettim ama her reboot'dan sonra switchbot'da kalan itemler yok oluyor. Bir kaç yerde enum Windowlar aynı olmalı diye yazılmış ama onuda denedim olmadı şuanki sıralamalarım bu şekilde.

length.h:
Genişlet Daralt Kopyala
enum EWindows
{
    RESERVED_WINDOW,
    INVENTORY,
    EQUIPMENT,
    SAFEBOX,
    MALL,
    DRAGON_SOUL_INVENTORY,
#ifdef ENABLE_SWITCHBOT
    SWITCHBOT,
#endif
    BELT_INVENTORY,
#ifdef __AUCTION__
    AUCTION,
#endif
    GROUND
};

GameType.h:
Genişlet Daralt Kopyala
enum EWindows
{
    RESERVED_WINDOW,
    INVENTORY,                // 기본 ?벤토리. (45칸 짜리가 2힘잴지 존재 = 90칸)
    EQUIPMENT,
    SAFEBOX,
    MALL,
    DRAGON_SOUL_INVENTORY,
#ifdef ENABLE_SWITCHBOT
    SWITCHBOT,
#endif
    BELT_INVENTORY,            // NOTE: W2.1 버전? 새로 추가래는 벨트 슬롯 아잴템잴 제공하는 벨트 ?벤토리
    GROUND,                    // NOTE: 2013년 2월5잼 현재까지 unused.. 왜 있는거지???
    WINDOW_TYPE_MAX,
};

item.sql:
Genişlet Daralt Kopyala
DROP TABLE IF EXISTS `item`;
CREATE TABLE `item`  (
  `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `owner_id` int(11) UNSIGNED NOT NULL DEFAULT 0,
  `window` enum('INVENTORY','EQUIPMENT','SAFEBOX','MALL','DRAGON_SOUL_INVENTORY','SWITCHBOT','BELT_INVENTORY') CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'INVENTORY',
  `pos` smallint(5) UNSIGNED NOT NULL DEFAULT 0,
  `count` tinyint(3) UNSIGNED NOT NULL DEFAULT 0,
  `vnum` int(11) UNSIGNED NOT NULL DEFAULT 0,
  `socket0` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `socket1` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `socket2` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `socket3` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `socket4` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `socket5` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `attrtype0` tinyint(4) NOT NULL DEFAULT 0,
  `attrvalue0` smallint(6) NOT NULL DEFAULT 0,
  `attrtype1` tinyint(4) NOT NULL DEFAULT 0,
  `attrvalue1` smallint(6) NOT NULL DEFAULT 0,
  `attrtype2` tinyint(4) NOT NULL DEFAULT 0,
  `attrvalue2` smallint(6) NOT NULL DEFAULT 0,
  `attrtype3` tinyint(4) NOT NULL DEFAULT 0,
  `attrvalue3` smallint(6) NOT NULL DEFAULT 0,
  `attrtype4` tinyint(4) NOT NULL DEFAULT 0,
  `attrvalue4` smallint(6) NOT NULL DEFAULT 0,
  `attrtype5` tinyint(4) NOT NULL DEFAULT 0,
  `attrvalue5` smallint(6) NOT NULL DEFAULT 0,
  `attrtype6` tinyint(4) NOT NULL DEFAULT 0,
  `attrvalue6` smallint(6) NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `owner_id_idx`(`owner_id`) USING BTREE,
  INDEX `item_vnum_index`(`vnum`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1610013545 CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Fixed;
 
Merhaba,

Sansi switchbot sistemi yükledim herşey tamam problemleri hallettim ama her reboot'dan sonra switchbot'da kalan itemler yok oluyor. Bir kaç yerde enum Windowlar aynı olmalı diye yazılmış ama onuda denedim olmadı şuanki sıralamalarım bu şekilde.

length.h:
Genişlet Daralt Kopyala
enum EWindows
{
    RESERVED_WINDOW,
    INVENTORY,
    EQUIPMENT,
    SAFEBOX,
    MALL,
    DRAGON_SOUL_INVENTORY,
#ifdef ENABLE_SWITCHBOT
    SWITCHBOT,
#endif
    BELT_INVENTORY,
#ifdef __AUCTION__
    AUCTION,
#endif
    GROUND
};

GameType.h:
Genişlet Daralt Kopyala
enum EWindows
{
    RESERVED_WINDOW,
    INVENTORY,                // 기본 ?벤토리. (45칸 짜리가 2힘잴지 존재 = 90칸)
    EQUIPMENT,
    SAFEBOX,
    MALL,
    DRAGON_SOUL_INVENTORY,
#ifdef ENABLE_SWITCHBOT
    SWITCHBOT,
#endif
    BELT_INVENTORY,            // NOTE: W2.1 버전? 새로 추가래는 벨트 슬롯 아잴템잴 제공하는 벨트 ?벤토리
    GROUND,                    // NOTE: 2013년 2월5잼 현재까지 unused.. 왜 있는거지???
    WINDOW_TYPE_MAX,
};

item.sql:
Genişlet Daralt Kopyala
DROP TABLE IF EXISTS `item`;
CREATE TABLE `item`  (
  `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `owner_id` int(11) UNSIGNED NOT NULL DEFAULT 0,
  `window` enum('INVENTORY','EQUIPMENT','SAFEBOX','MALL','DRAGON_SOUL_INVENTORY','SWITCHBOT','BELT_INVENTORY') CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'INVENTORY',
  `pos` smallint(5) UNSIGNED NOT NULL DEFAULT 0,
  `count` tinyint(3) UNSIGNED NOT NULL DEFAULT 0,
  `vnum` int(11) UNSIGNED NOT NULL DEFAULT 0,
  `socket0` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `socket1` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `socket2` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `socket3` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `socket4` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `socket5` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `attrtype0` tinyint(4) NOT NULL DEFAULT 0,
  `attrvalue0` smallint(6) NOT NULL DEFAULT 0,
  `attrtype1` tinyint(4) NOT NULL DEFAULT 0,
  `attrvalue1` smallint(6) NOT NULL DEFAULT 0,
  `attrtype2` tinyint(4) NOT NULL DEFAULT 0,
  `attrvalue2` smallint(6) NOT NULL DEFAULT 0,
  `attrtype3` tinyint(4) NOT NULL DEFAULT 0,
  `attrvalue3` smallint(6) NOT NULL DEFAULT 0,
  `attrtype4` tinyint(4) NOT NULL DEFAULT 0,
  `attrvalue4` smallint(6) NOT NULL DEFAULT 0,
  `attrtype5` tinyint(4) NOT NULL DEFAULT 0,
  `attrvalue5` smallint(6) NOT NULL DEFAULT 0,
  `attrtype6` tinyint(4) NOT NULL DEFAULT 0,
  `attrvalue6` smallint(6) NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `owner_id_idx`(`owner_id`) USING BTREE,
  INDEX `item_vnum_index`(`vnum`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1610013545 CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Fixed;
belt_inventoryden sonra eklersen sorunun çöözülür muhtemelen
 
clientmanagerplayerda mı clientmanager.cppde mi bu ikisinde de olabilir belkide

SAFEBOX

diye arat bu şekil window enumları olduğunu görüceksin eğer manuel tanımlandıysa switchbot kısmını oralara da tanımla sorunun çözülür.
 
clientmanagerplayerda mı clientmanager.cppde mi bu ikisinde de olabilir belkide

SAFEBOX

diye arat bu şekil window enumları olduğunu görüceksin eğer manuel tanımlandıysa switchbot kısmını oralara da tanımla sorunun çözülür.
bu iki cpp'de Window enum yok sadece şöyle bi durum var ama bununla alaklı değil sanırım


ClientManagerPlayer.cpp:
Genişlet Daralt Kopyala
#ifdef ENABLE_SWITCHBOT //Replace your old line with the whole ifdef/else statement
        snprintf(queryStr, sizeof(queryStr), "DELETE FROM item%s WHERE owner_id=%d AND (window < %d or window = %d or window %d)", GetTablePostfix(), pi->player_id, SAFEBOX, DRAGON_SOUL_INVENTORY, SWITCHBOT);
#else
        snprintf(queryStr, sizeof(queryStr), "DELETE FROM item%s WHERE owner_id=%d AND (window < %d or window = %d)", GetTablePostfix(), pi->player_id, SAFEBOX, DRAGON_SOUL_INVENTORY);
#endif
 
bu iki cpp'de Window enum yok sadece şöyle bi durum var ama bununla alaklı değil sanırım


ClientManagerPlayer.cpp:
Genişlet Daralt Kopyala
#ifdef ENABLE_SWITCHBOT //Replace your old line with the whole ifdef/else statement
        snprintf(queryStr, sizeof(queryStr), "DELETE FROM item%s WHERE owner_id=%d AND (window < %d or window = %d or window %d)", GetTablePostfix(), pi->player_id, SAFEBOX, DRAGON_SOUL_INVENTORY, SWITCHBOT);
#else
        snprintf(queryStr, sizeof(queryStr), "DELETE FROM item%s WHERE owner_id=%d AND (window < %d or window = %d)", GetTablePostfix(), pi->player_id, SAFEBOX, DRAGON_SOUL_INVENTORY);
#endif
valla bilmiyorum buralardan bir şeylerdendi. hatta reboota gerek yok sanırım sorunun için eşyayı efsun botuna koy ışınlan yine kayboluyordu yanılmıyorsam ben buralardan çözmüştüm. çözümü de yukardaki gibi attım.
 
Merhaba,

Sansi switchbot sistemi yükledim herşey tamam problemleri hallettim ama her reboot'dan sonra switchbot'da kalan itemler yok oluyor. Bir kaç yerde enum Windowlar aynı olmalı diye yazılmış ama onuda denedim olmadı şuanki sıralamalarım bu şekilde.

length.h:
Genişlet Daralt Kopyala
enum EWindows
{
    RESERVED_WINDOW,
    INVENTORY,
    EQUIPMENT,
    SAFEBOX,
    MALL,
    DRAGON_SOUL_INVENTORY,
#ifdef ENABLE_SWITCHBOT
    SWITCHBOT,
#endif
    BELT_INVENTORY,
#ifdef __AUCTION__
    AUCTION,
#endif
    GROUND
};

GameType.h:
Genişlet Daralt Kopyala
enum EWindows
{
    RESERVED_WINDOW,
    INVENTORY,                // 기본 ?벤토리. (45칸 짜리가 2힘잴지 존재 = 90칸)
    EQUIPMENT,
    SAFEBOX,
    MALL,
    DRAGON_SOUL_INVENTORY,
#ifdef ENABLE_SWITCHBOT
    SWITCHBOT,
#endif
    BELT_INVENTORY,            // NOTE: W2.1 버전? 새로 추가래는 벨트 슬롯 아잴템잴 제공하는 벨트 ?벤토리
    GROUND,                    // NOTE: 2013년 2월5잼 현재까지 unused.. 왜 있는거지???
    WINDOW_TYPE_MAX,
};

item.sql:
Genişlet Daralt Kopyala
DROP TABLE IF EXISTS `item`;
CREATE TABLE `item`  (
  `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `owner_id` int(11) UNSIGNED NOT NULL DEFAULT 0,
  `window` enum('INVENTORY','EQUIPMENT','SAFEBOX','MALL','DRAGON_SOUL_INVENTORY','SWITCHBOT','BELT_INVENTORY') CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'INVENTORY',
  `pos` smallint(5) UNSIGNED NOT NULL DEFAULT 0,
  `count` tinyint(3) UNSIGNED NOT NULL DEFAULT 0,
  `vnum` int(11) UNSIGNED NOT NULL DEFAULT 0,
  `socket0` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `socket1` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `socket2` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `socket3` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `socket4` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `socket5` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `attrtype0` tinyint(4) NOT NULL DEFAULT 0,
  `attrvalue0` smallint(6) NOT NULL DEFAULT 0,
  `attrtype1` tinyint(4) NOT NULL DEFAULT 0,
  `attrvalue1` smallint(6) NOT NULL DEFAULT 0,
  `attrtype2` tinyint(4) NOT NULL DEFAULT 0,
  `attrvalue2` smallint(6) NOT NULL DEFAULT 0,
  `attrtype3` tinyint(4) NOT NULL DEFAULT 0,
  `attrvalue3` smallint(6) NOT NULL DEFAULT 0,
  `attrtype4` tinyint(4) NOT NULL DEFAULT 0,
  `attrvalue4` smallint(6) NOT NULL DEFAULT 0,
  `attrtype5` tinyint(4) NOT NULL DEFAULT 0,
  `attrvalue5` smallint(6) NOT NULL DEFAULT 0,
  `attrtype6` tinyint(4) NOT NULL DEFAULT 0,
  `attrvalue6` smallint(6) NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `owner_id_idx`(`owner_id`) USING BTREE,
  INDEX `item_vnum_index`(`vnum`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1610013545 CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Fixed;
Bu sorunu ben yaşadım db taraflı SWICH kaçıncı sırada ona göre srcleri ayarla ve mysqlu
 
Bu sorunu ben yaşadım db taraflı SWICH kaçıncı sırada ona göre srcleri ayarla ve mysqlu
anladığım kadarıyla item>window tarafı orjinali ney'e göre ayarlıysa ona göre length.h ve GameType.h ona göre ayarlanacak sanırım. Yada bahsettiğiniz source/db tarafımı ?

çünkü bu ayarları yapmadan önce item>window tarafının orjinali BELT_INVENTORY , SWITCHBOT'un üzerindeydi ben diğer taraflarla aynı olsun diye SWITCHBOT'u BELT_INVENTORY'nin üzerine aldım bire bir aynı olsun diye sanırım db tarafı orjinal kalacak diğer yerleri db'ye göre ayarlıyacağız.
 
anladığım kadarıyla item>window tarafı orjinali ney'e göre ayarlıysa ona göre length.h ve GameType.h ona göre ayarlanacak sanırım. Yada bahsettiğiniz source/db tarafımı ?

çünkü bu ayarları yapmadan önce item>window tarafının orjinali BELT_INVENTORY , SWITCHBOT'un üzerindeydi ben diğer taraflarla aynı olsun diye SWITCHBOT'u BELT_INVENTORY'nin üzerine aldım bire bir aynı olsun diye sanırım db tarafı orjinal kalacak diğer yerleri db'ye göre ayarlıyacağız.
evet db sıra nasılsa srclerde öyle olması lazım
 
Sorun ilginç bir şekilde item tablosundan switchbot'u çıkarıp tekrar ekleyince düzeldi :) 2-3 kere reboot atıp denedim herhangi bir kaybolma olmadı sıkıntı yaşayanlar bunu yapabilir.
 
1 length.h GameType.h Sıralaması yanlış

2 Clientmanagerplayer.cpp Dogru Eklenmediği Zaman İtem Kaybı Ya Ordan Yasanır Yada Mysql Sıralamasında

Yaptıgınız İşlemlerı Kontrol Ederek Tekrar Çözümleme Saglarmısınız Yanlış Anlasılma Olmasın Teşekürler
 
Geri
Üst