Çözüldü Oyuncu Oyuna girince bildirim gelmesi

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

IMD

Üye
Üye
Mesaj
92
Çözümler
1
Beğeni
11
Puan
439
Ticaret Puanı
0
1778203454622.webp


Oyuncu Oyuna girince bildirim gelmesi bununla alakalı bir konu göremedim yardımcı olacak varmı?
 
Çözüm
give_basic_weapon.quest içerisinde kullanacağın satır:

1:
Genişlet Daralt Kopyala
                pc.send_whisper("Hoşgeldin oyuncu.", "[Bildirim- Test Sunucusu]")

ve quest_functions'a pc.send_whisper eklemeyi unutma.

questlua_pc.cpp
2:
Genişlet Daralt Kopyala
    int pc_send_whisper(lua_State* L)
    {
        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
        if (!ch)
            return 0;
        auto msg = lua_tostring(L, 1);
        auto who = "[System]";
        auto isgm = true;
        if (lua_isstring(L, 2))
            who = lua_tostring(L, 2);
        if (lua_isboolean(L, 3))
            isgm = lua_toboolean(L, 3);
        ch->SendWhisper(msg, who, isgm);
        return 0;
    }

    bool CHARACTER::SendWhisper(const char* msg, const char* who...
Ücretsiz paylaşılan yok bildiğim kadarıyla barbaros2 filesinde mevcut oradan sökebilirsiniz
 
give_basic_weapon.quest içerisinde kullanacağın satır:

1:
Genişlet Daralt Kopyala
                pc.send_whisper("Hoşgeldin oyuncu.", "[Bildirim- Test Sunucusu]")

ve quest_functions'a pc.send_whisper eklemeyi unutma.

questlua_pc.cpp
2:
Genişlet Daralt Kopyala
    int pc_send_whisper(lua_State* L)
    {
        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
        if (!ch)
            return 0;
        auto msg = lua_tostring(L, 1);
        auto who = "[System]";
        auto isgm = true;
        if (lua_isstring(L, 2))
            who = lua_tostring(L, 2);
        if (lua_isboolean(L, 3))
            isgm = lua_toboolean(L, 3);
        ch->SendWhisper(msg, who, isgm);
        return 0;
    }

    bool CHARACTER::SendWhisper(const char* msg, const char* who, bool isgm)
{
    if (!GetDesc())
        return false;
  
    const size_t buflen = strlen(msg);
    uint8_t bType = WHISPER_TYPE_NORMAL;
  
    if (isgm)
    {
        //bType = (bType & 0xF0) | WHISPER_TYPE_GM;
        bType = WHISPER_TYPE_SYSTEM;
    }

    if (buflen <= 0)
        return false;
  
    TPacketGCWhisper pack{};
    pack.bHeader = HEADER_GC_WHISPER;
    pack.wSize = sizeof(TPacketGCWhisper) + buflen;
    pack.bType = bType;
    strlcpy(pack.szNameFrom, who, sizeof(pack.szNameFrom));

    //TEMP_BUFFER tmpbuf{};
    //tmpbuf.write(&pack, sizeof(pack));
    //tmpbuf.write(msg, buflen);
    //GetDesc()->Packet(tmpbuf.read_peek(), tmpbuf.size());
    GetDesc()->BufferedPacket(&pack, sizeof(pack));
    GetDesc()->Packet(msg, buflen);

    return true;
}

ve char.h için decleration:
3:
Genişlet Daralt Kopyala
        bool    SendWhisper(const char* msg, const char* who, bool isgm = true);

ayrıca
C++:
Genişlet Daralt Kopyala
 { "send_whisper", pc_send_whisper },
eklemeyi unutma questlua_pc.cpp'de
 
Son düzenleme:
Çözüm
give_basic_weapon.quest içerisinde kullanacağın satır:

1:
Genişlet Daralt Kopyala
                pc.send_whisper("Hoşgeldin oyuncu.", "[Naira2 - Test Sunucusu]")

ve quest_functions'a pc.send_whisper eklemeyi unutma.

questlua_pc.cpp
2:
Genişlet Daralt Kopyala
    int pc_send_whisper(lua_State* L)
    {
        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
        if (!ch)
            return 0;
        auto msg = lua_tostring(L, 1);
        auto who = "[System]";
        auto isgm = true;
        if (lua_isstring(L, 2))
            who = lua_tostring(L, 2);
        if (lua_isboolean(L, 3))
            isgm = lua_toboolean(L, 3);
        ch->SendWhisper(msg, who, isgm);
        return 0;
    }

    bool CHARACTER::SendWhisper(const char* msg, const char* who, bool isgm)
{
    if (!GetDesc())
        return false;
   
    const size_t buflen = strlen(msg);
    uint8_t bType = WHISPER_TYPE_NORMAL;
   
    if (isgm)
    {
        //bType = (bType & 0xF0) | WHISPER_TYPE_GM;
        bType = WHISPER_TYPE_SYSTEM;
    }

    if (buflen <= 0)
        return false;
   
    TPacketGCWhisper pack{};
    pack.bHeader = HEADER_GC_WHISPER;
    pack.wSize = sizeof(TPacketGCWhisper) + buflen;
    pack.bType = bType;
    strlcpy(pack.szNameFrom, who, sizeof(pack.szNameFrom));

    //TEMP_BUFFER tmpbuf{};
    //tmpbuf.write(&pack, sizeof(pack));
    //tmpbuf.write(msg, buflen);
    //GetDesc()->Packet(tmpbuf.read_peek(), tmpbuf.size());
    GetDesc()->BufferedPacket(&pack, sizeof(pack));
    GetDesc()->Packet(msg, buflen);

    return true;
}

ve char.h için decleration:
3:
Genişlet Daralt Kopyala
        bool    SendWhisper(const char* msg, const char* who, bool isgm = true);

ayrıca
{ "send_whisper", pc_send_whisper },
eklemeyi unutma questlua_pc.cpp'de
Düzelttim. Sanırım böyle doğru görünüyor.
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst