Sosyal açıldı! Bir göz at → Hemen gir →

ÇÖZÜLDÜ V2383 kill sayacına Ses efekti ekleme hakkında KODLAR PAYLAŞILDI.

ULAŞ

KY Kıdemli Üye
KAYIT
18 Kas 2025
Mesajlar
322
Çözümler
2
Tepki puanı
129
Kullanılan Source
DEAFSOFT
Versiyon
2383
V2400 ve üzeri versiyonlarda bu ses efekti mevcut clientte snd klasörde bulunan kill ve asist seslerini v2369 ve v2383 ekmek mümkün mü ? Hook kısmına müdahale gerekiyor mu ?

ÇÖZÜM:
ÖNCELİKLE V2500+ sürümden snd klasördeki hdr unpack yapın narration klasöründe ses dosyalarını göreceksiniz. içinden kill ve asist kısmını kendi clientinizin Snd klasörüne atın.

GAME SOURCE TARAFI
User.h
C++:
PUPLİC
    void SendKillAssistPacket(uint8 nType, uint16 nKillCount);

UserHealtMagicSpSystem.cpp

C++:
void CUser::KA_KillUpdate()
{
    if (!isInPKZone()) return;

    bool pktsend = false;
    if (pAssistKill.serikillcount == 0) { pktsend = true; }
    else if (UNIXTIME - pAssistKill.lastkilltime < 30) { pktsend = true; }
    else { pAssistKill.serikillcount = 0; pktsend = true; }

    if (pktsend)
    {
        SendKillAssistPacket(1, (uint16)++pAssistKill.serikillcount);
    }

    pAssistKill.totalkillcount++;
    pAssistKill.lastkilltime = UNIXTIME;

    // 10 kill'de bir geçen notice kısmı (isteğe bağlı)
    if (pAssistKill.totalkillcount % 10 == 0)
    {
        Packet newpkt2(WIZ_KILLASSIST, uint8(kaopcode::kill));
        newpkt2 << uint8(3) << uint32(1) << GetName() << GetNation() << (uint16)pAssistKill.totalkillcount;
        if (isInParty()) g_pMain->Send_PartyMember(GetPartyID(), &newpkt2);
        else Send(&newpkt2);
    }
void CUser::SendKillAssistPacket(uint8 nType, uint16 nKillCount)
{
    Packet pkt(WIZ_KILLASSIST);
    pkt << uint8(nType)     // 1: Kill, 2: Assist
        << uint8(1)         // unk1 (DLL'de okuduğumuz boşluk)
        << uint32(1)        // unk2 (DLL'de okuduğumuz boşluk)
        << GetName()        // DLL'in yolu bulması için isim
        << uint8(1)         // unk3
        << nKillCount;      // Seri kill sayısı (01, 02...)

    Send(&pkt);
}
}

HOOK SOURCE TARAFI

Pearl Engine.cpp
Kod:
case WIZ_KILLASSIST:
{
    char currentDir[MAX_PATH];
    char fullPath[MAX_PATH];

    uint8 typeCode = pkt.read<uint8>();
    pkt.read<uint8>(); pkt.read<uint32>();
    std::string killerName; pkt >> killerName;
    pkt.read<uint8>();
    uint16 killCount = pkt.read<uint16>();

    GetModuleFileNameA(NULL, currentDir, MAX_PATH);
    char* lastSlash = strrchr(currentDir, '\\');
    if (lastSlash) *lastSlash = '\0'; // .exe adını yoldan siler

    bool isFemale = (*(uint8*)(*(DWORD*)KO_PTR_CHR + 0x678) == 1);
    std::string genderFolder = isFemale ? "f1" : "m1";
    std::string typeFolder = (typeCode == 1) ? "kill" : "asist";

    sprintf_s(fullPath, "%s\\Snd\\%s\\%s\\%02d.wav", currentDir, typeFolder.c_str(), genderFolder.c_str(), killCount);

    if (!PlaySoundA(fullPath, NULL, SND_ASYNC | SND_FILENAME | SND_NODEFAULT)) {
        // Hata mesajı yerine sadece log atalım, oyunun akışını bozmasın
        OutputDebugStringA("SES DOSYASI BULUNAMADI!");
    }
}

NOT: SES DOSYALARIN UZANTISI .wav OLACAKTIR.

UZANTI DÖNÜŞTÜRÜCÜ KODU TXT dosyası açın
C++:
ren *.ogg *.wav
yazıp kaydedin.
.bat olarak çalıştırmanız yeterlidir.
 

Ekli dosyalar

  • IMG_1324.jpeg
    IMG_1324.jpeg
    85.6 KB · Görüntüleme: 27
Son düzenleme:
Çözüm
ogg uzantı kullanır standartı budur. ama src den kod yazarsanız wav da çalışabilir ama stabil ol
  • .ogg (Vorbis): Sıkıştırılmış bir formatır. Tıpkı bir .zip dosyası gibi, ses verisi paketlenmiştir. İşlemci (CPU), bu sesi çalmak için önce o paketi açmak (decode etmek) zorundadır.
  • .wav (PCM): Ham ve sıkıştırılmamış veridir. Dosya boyutu büyüktür ama işlemciye hiç yük bindirmez. Ses verisi "olduğu gibi" okunur.
  • PK (Player Killing) anında adam kestiğin saniyede sesin gelmesi lazım. .wav işlenmiş hazır veri olduğu için saniyenin binde biri hızında tetiklenir.

    stabil çalışır. yapay zeka kodu atıp random sesler gelmesini istersen kodları değiştirebilirsin...

ULAŞ

KY Kıdemli Üye
KAYIT
18 Kas 2025
Mesajlar
322
Çözümler
2
Tepki puanı
129
.wav uzantılı 16 bit 4100mhz mono olarak ayarlanacaktır googleden ayarlatmayı unutmayın
 

kernelbu

KY Kıdemli Üye
KAYIT
24 Ocak 2026
Mesajlar
122
Tepki puanı
14
ogg uzantı kullanır standartı budur. ama src den kod yazarsanız wav da çalışabilir ama stabil olmaz.
 

ULAŞ

KY Kıdemli Üye
KAYIT
18 Kas 2025
Mesajlar
322
Çözümler
2
Tepki puanı
129
ogg uzantı kullanır standartı budur. ama src den kod yazarsanız wav da çalışabilir ama stabil ol
  • .ogg (Vorbis): Sıkıştırılmış bir formatır. Tıpkı bir .zip dosyası gibi, ses verisi paketlenmiştir. İşlemci (CPU), bu sesi çalmak için önce o paketi açmak (decode etmek) zorundadır.
  • .wav (PCM): Ham ve sıkıştırılmamış veridir. Dosya boyutu büyüktür ama işlemciye hiç yük bindirmez. Ses verisi "olduğu gibi" okunur.
  • PK (Player Killing) anında adam kestiğin saniyede sesin gelmesi lazım. .wav işlenmiş hazır veri olduğu için saniyenin binde biri hızında tetiklenir.

    stabil çalışır. yapay zeka kodu atıp random sesler gelmesini istersen kodları değiştirebilirsin.
 
Çözüm
Anasayfa Kayıt ol Giriş yap
Üst Alt