Hikayeler

Reklam vermek için turkmmo@gmail.com

do_item döngü güncellemesi

TheAdmin33

Level 3
Uzman
Katılım
19 Kas 2022
Konular
55
Mesajlar
188
Online süresi
2ay 4g
Reaksiyon Skoru
150
Altın Konu
0
Başarım Puanı
98
TM Yaşı
3 Yıl 5 Ay 2 Gün
MmoLira
13,490
DevLira
66

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!

gm ler /i komutunu kullanarak item yaratabiliyorlar, normalde /i 27992 komutunu kullandığında 1 adet beyaz inci üretilir ve /i 27992 10 komutunu kullandığında ise 10 adet beyaz inci üretilir. Bu güncellemeyle birlikte /i 27992 10 10 komutunu kullandığınızda 10 adet 10 lu beyaz inci üretebilirsiniz. stacklenmeyen itemler için komut örneği: /i 19 0 10 (10 adet +9 kılıç üretir)



cmd_gm.cpp:
ACMD(do_item)
{
    char arg1[256], arg2[256], arg3[256];
    one_argument(two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2)), arg3, sizeof(arg3));

    DWORD dwVnum = 0;
    int iCount = 1;
    int loop_count = 1;

    if (!*arg1)
    {
        ch->ChatPacket(CHAT_TYPE_INFO, "Usage: item <item vnum>");
        return;
    }

    if (isnhdigit(*arg1))
        str_to_number(dwVnum, arg1);
    else
    {
        if (!ITEM_MANAGER::instance().GetVnum(arg1, dwVnum))
        {
            ch->ChatPacket(CHAT_TYPE_INFO, "#%u item not exist by that vnum.", dwVnum);
            return;
        }
    }

    if (*arg2)
    {
        str_to_number(iCount, arg2);
        iCount = MINMAX(1, iCount, ITEM_MAX_COUNT);
    }

    if (*arg3)
    {
        str_to_number(loop_count, arg3);
        loop_count = MINMAX(1, loop_count, 20);//ITEM_MAX_COUNT gibi sabit oluşturmadan yaptım, siz değiştirebilirsiniz.Not: 20 sayısı sınırdır ve bunu çok arttırmayın.
    }

    for (int i = 0; i < loop_count; ++i)
    {
        LPITEM item = ITEM_MANAGER::instance().CreateItem(dwVnum, iCount, 0, true);

        if (!item)
        {
            ch->ChatPacket(CHAT_TYPE_INFO, "#%u item not exist by that vnum.", dwVnum);
            break;//item yoksa for döngüsünden çık
        }

        if (item->IsDragonSoul())
        {
            int iEmptyPos = ch->GetEmptyDragonSoulInventory(item);

            if (iEmptyPos != -1)
            {
                item->AddToCharacter(ch, TItemPos(DRAGON_SOUL_INVENTORY, iEmptyPos));
                LogManager::instance().ItemLog(ch, item, "GM", item->GetName());
            }
            else
            {
                M2_DESTROY_ITEM(item);
                if (!ch->DragonSoul_IsQualified())
                {
                    ch->ChatPacket(CHAT_TYPE_INFO, "Àκ¥ÀÌ È°¼ºÈ µÇÁö ¾ÊÀ½.");
                }
                else
                {
                    ch->ChatPacket(CHAT_TYPE_INFO, "Not enough inventory space.");
                }
                break;//envanterde yer yoksa for döngüsünden çık
            }
        }
        else
        {
            int iEmptyPos = ch->GetEmptyInventory(item->GetSize());

            if (iEmptyPos != -1)
            {
                item->AddToCharacter(ch, TItemPos(INVENTORY, iEmptyPos));
                LogManager::instance().ItemLog(ch, item, "GM", item->GetName());
            }
            else
            {
                M2_DESTROY_ITEM(item);
                ch->ChatPacket(CHAT_TYPE_INFO, "Not enough inventory space.");
                break;//envanterde yer yoksa for döngüsünden çık
            }
        }
    }
}
 
Paylaşım için teşekkürler.
 
eline sağlık dostum
 
Paylaşım için teşekkürler.
 
2023'te ekledim ;D
(I added in 2023 ;D)
 

Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)

Geri
Üst