Sorunsuz Genie Sistemi

Sorunsuz Genie Sistemi

Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

Krauss

Asteğmen
Katılım
15 May 2026
Mesajlar
14
Tepkime puanı
3
C++:
struct _GENIE_DATA
{
    uint16 SkillCount;
    uint32 SkillData[23];

    uint8 AttackMode;
    uint8 RecoveryMode;

    uint8 SkillRecoveryPercent;
    uint8 AttackRange;
    uint8 ActivitiesRange;

    uint8 HpRecovery;
    uint8 HpPotionPercent;

    uint8 MpRecovery;
    uint8 MpPotionPercent;

    uint8 PetPotionRecovery;
    uint8 PetPotionPercent;

    uint8 AutomaticSkillParty;

    uint8 PartyNumber[12];

    uint8 Options[9];

    uint8 ReturnHPTownPercent;
    uint8 ReturnMPTownPercent;

    _GENIE_DATA()
    {
        for (int i = 0; i < 23; i++)
            SkillData[i] = 0;

        SkillCount = 0;

        AttackMode = 0;
        RecoveryMode = 0;

        SkillRecoveryPercent = 0;
        AttackRange = 0;
        ActivitiesRange = 0;

        HpRecovery = 0;
        HpPotionPercent = 0;

        MpRecovery = 0;
        MpPotionPercent = 0;

        PetPotionRecovery = 0;
        PetPotionPercent = 0;

        AutomaticSkillParty = 0;

        for (int i = 0; i < 12; i++)
            PartyNumber[i] = 0;

        for (int i = 0; i < 9; i++)
            Options[i] = 0;

        ReturnHPTownPercent = 0;
        ReturnMPTownPercent = 0;
    }
};

void CUser::LoadGenieData()
{
    Packet result(WIZ_GENIE, uint8(1));

    result << uint8(2);

    result << GenieData.SkillCount;

    for (int i = 0; i < GenieData.SkillCount; i++)
        result << GenieData.SkillData[i];

    result << uint16(35);

    result << GenieData.AttackMode
        << GenieData.RecoveryMode
        << GenieData.SkillRecoveryPercent
        << GenieData.AttackRange
        << GenieData.ActivitiesRange
        << GenieData.HpRecovery
        << GenieData.HpPotionPercent
        << GenieData.MpRecovery
        << GenieData.MpPotionPercent
        << GenieData.PetPotionRecovery
        << GenieData.PetPotionPercent
        << GenieData.AutomaticSkillParty;

    for (int i = 0; i < 12; i++)
        result << GenieData.PartyNumber[i];

    for (int i = 0; i < 9; i++)
    {
        result << GenieData.Options[i];

        if (i == 0)
            result << GenieData.ReturnHPTownPercent;

        if (i == 1)
            result << GenieData.ReturnMPTownPercent;
    }

    Send(&result);
}

void CUser::SaveGenieData(Packet & pkt)
{
    pkt >> GenieData.SkillCount;

    if (GenieData.SkillCount > 23)
        GenieData.SkillCount = 23;

    for (int i = 0; i < GenieData.SkillCount; i++)
        pkt >> GenieData.SkillData[i];

    uint16 TotalCount = 0;
    pkt >> TotalCount;

    pkt >> GenieData.AttackMode
        >> GenieData.RecoveryMode
        >> GenieData.SkillRecoveryPercent
        >> GenieData.AttackRange
        >> GenieData.ActivitiesRange
        >> GenieData.HpRecovery
        >> GenieData.HpPotionPercent
        >> GenieData.MpRecovery
        >> GenieData.MpPotionPercent
        >> GenieData.PetPotionRecovery
        >> GenieData.PetPotionPercent
        >> GenieData.AutomaticSkillParty;

    for (int i = 0; i < 12; i++)
        pkt >> GenieData.PartyNumber[i];

    for (int i = 0; i < 9; i++)
    {
        pkt >> GenieData.Options[i];

        if (i == 0)
            pkt >> GenieData.ReturnHPTownPercent;

        if (i == 1)
            pkt >> GenieData.ReturnMPTownPercent;
    }
}
 
Son düzenleme:

Konuyu Görüntüleyen Kullanıcılar (Toplam:1)

Geri
Üst