Çözüldü Oyun içi ch değiştirme | channelswitch_port_not_avaible

  • Konuyu açan Konuyu açan DELIASIL
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 4
  • Gösterim Gösterim 83
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ı.

DELIASIL

Premium Üye
Premium Üye
Üye
Mesaj
170
Çözümler
7
Beğeni
39
Puan
89
Ticaret Puanı
0
1762940767119.webp


channelswitch_port_not_avaible hatası alıyorum sorunun kaynağınıda bulamadım syserde yok neyden kaynaklı yapıyor olabilir?
ibest channel switcher
 
Son düzenleme:
Çözüm
C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_CHANNEL_SWITCHER
void CHARACTER::SwitchChannel(int iNewChannel)
{
    long lAddr, lMapIndex;
    WORD wPort;

    long x = GetX();
    long y = GetY();

    if (!CMapLocation::Instance().Get(x, y, lMapIndex, lAddr, wPort))
        return;

    std::map<WORD, BYTE> ChannelsPorts;
    for(int i = 1; i <= SWITCHER_CHANNELS; i++)
    {
        for(int i2 = 1; i2 <= SWITCHER_CORES; i2++)
        {
            ChannelsPorts[26*1000 + i*100 + i2] = i;
        }     
    }
  
    int iChannel = ChannelsPorts.find(wPort) != ChannelsPorts.end() ? ChannelsPorts[wPort] : 0;

    Stop();
    Save();

    if (GetSectree())
    {
        GetSectree()->RemoveEntity(this);
        ViewCleanup();
        EncodeRemovePacket(this);
    }...
Merhaba dostum, hata söylüyo zaten ne sorun olduğunu.
Serverinfo.pyde portlar olur chlerin,
Mesela ;
SERVER1 = { "CH1": 13000, "CH2": 13001, "CH3": 13002 }
Buna göre ftpden sunucudaki ch1 ch2lerin içindeki configleri kontrol et port numaraları aynı olsun. Birde hangi chye geçmek istiyosan o chyide aktif et.

13920 diye port yok mesela sende muhtemelen yanlış ayarlandı.
 
Başta belirttiği port bulundugum kanalın kendi portu oyundan çıkıp ch değişince çıkıntı yok oyun içerisinde hızlı ch de yapıyor bunu

char cpp de

Kod:
Genişlet Daralt Kopyala
    p.wPort = (wPort - 10*(iChannel - 1) + 10*(iNewChannel - 1));

bendede her ch arasında 10 fark var zaten sorun nerede anlamadım
 
C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_CHANNEL_SWITCHER
void CHARACTER::SwitchChannel(int iNewChannel)
{
    long lAddr, lMapIndex;
    WORD wPort;

    long x = GetX();
    long y = GetY();

    if (!CMapLocation::Instance().Get(x, y, lMapIndex, lAddr, wPort))
        return;

    std::map<WORD, BYTE> ChannelsPorts;
    for(int i = 1; i <= SWITCHER_CHANNELS; i++)
    {
        for(int i2 = 1; i2 <= SWITCHER_CORES; i2++)
        {
            ChannelsPorts[26*1000 + i*100 + i2] = i;
        }       
    }
    
    int iChannel = ChannelsPorts.find(wPort) != ChannelsPorts.end() ? ChannelsPorts[wPort] : 0;

    Stop();
    Save();

    if (GetSectree())
    {
        GetSectree()->RemoveEntity(this);
        ViewCleanup();
        EncodeRemovePacket(this);
    }

    TPacketGCWarp p;
    p.bHeader = HEADER_GC_WARP;
    p.lX = x;
    p.lY = y;
    p.lAddr = lAddr;
    p.wPort = (wPort - 10*(iChannel - 1) + 10*(iNewChannel - 1));

    GetDesc()->Packet(&p, sizeof(TPacketGCWarp));
}
#endif

şu kısmı hiç anlamadım .

Kod:
Genişlet Daralt Kopyala
            ChannelsPorts[26*1000 + i*100 + i2] = i;
ellemeye gerek oldugunu kimse söylemiyor ama
 
C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_CHANNEL_SWITCHER
void CHARACTER::SwitchChannel(int iNewChannel)
{
    long lAddr, lMapIndex;
    WORD wPort;

    long x = GetX();
    long y = GetY();

    if (!CMapLocation::Instance().Get(x, y, lMapIndex, lAddr, wPort))
        return;

    std::map<WORD, BYTE> ChannelsPorts;
    for(int i = 1; i <= SWITCHER_CHANNELS; i++)
    {
        for(int i2 = 1; i2 <= SWITCHER_CORES; i2++)
        {
            ChannelsPorts[26*1000 + i*100 + i2] = i;
        }     
    }
  
    int iChannel = ChannelsPorts.find(wPort) != ChannelsPorts.end() ? ChannelsPorts[wPort] : 0;

    Stop();
    Save();

    if (GetSectree())
    {
        GetSectree()->RemoveEntity(this);
        ViewCleanup();
        EncodeRemovePacket(this);
    }

    TPacketGCWarp p;
    p.bHeader = HEADER_GC_WARP;
    p.lX = x;
    p.lY = y;
    p.lAddr = lAddr;
    p.wPort = (wPort - 10*(iChannel - 1) + 10*(iNewChannel - 1));

    GetDesc()->Packet(&p, sizeof(TPacketGCWarp));
}
#endif

şu kısmı hiç anlamadım .

Kod:
Genişlet Daralt Kopyala
            ChannelsPorts[26*1000 + i*100 + i2] = i;
ellemeye gerek oldugunu kimse söylemiyor ama


ChannelsPorts[26*1000 + i*100 + i2] = i;

Düzenleme ;

ChannelsPorts[13900 + i*10] = i;

Sorunumu böyle çözdüm ben,
i2 kanal port son değişkenini iptal ettim,
çarpan kullanmadan 13900 başlangıç portumu girdim
her port arası 10 sayı farkı girdim ve şuan sorunsuz
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst