Çözüldü Dungeon info sistemine eklenti

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

XoliswA

Üye
Üye
Mesaj
11
Çözümler
1
Beğeni
0
Puan
406
Ticaret Puanı
0
Dungeon info sisteminde ücret karşılığı ışınlamasını istiyorum. Bunun için nasıl bir kod eklemem gerek?

C++:
Genişlet Daralt Kopyala
void CDungeonInfoManager::Warp(LPCHARACTER pkCh, BYTE byIndex)
{
    if (!pkCh)
        return;

    LPDESC pkDesc = pkCh->GetDesc();
    if (!pkDesc)
        return;

    if (byIndex > s_vecDungeonProto.size() - 1)
        return;

    SDungeonData* pSDungeonData = s_vecDungeonProto[byIndex];
    if (pSDungeonData)
    {
        for (size_t iLimit = 0; iLimit < pSDungeonData->vecLevelLimit.size(); ++iLimit)
        {
            if (pkCh->GetLevel() < pSDungeonData->vecLevelLimit[iLimit].iMin)
                return;

            if (pkCh->GetLevel() > pSDungeonData->vecLevelLimit[iLimit].iMax)
                return;
        }

        for (size_t iPos = 0; iPos < pSDungeonData->vecLevelLimit.size(); ++iPos)
        {
            pkCh->WarpSet(
                pSDungeonData->vecEntryPosition[iPos].lBaseX * 100,
                pSDungeonData->vecEntryPosition[iPos].lBaseY * 100
            );
            return;
        }
    }
}
 
Çözüm
C++:
Genişlet Daralt Kopyala
if (!pkCh)
    return;

Bunun altına yada üstüne şunu ekle:
C++:
Genişlet Daralt Kopyala
    if(ch->GetGold() < 1000) //1m
    {
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("dungeon_info_ucret"));
        return;
    }

locale_string.txt içine ekle:
Kod:
Genişlet Daralt Kopyala
"dungeon_info_ucret";
"Yeterli paran olmadığı için işlem reddedildi";
C++:
Genişlet Daralt Kopyala
if (!pkCh)
    return;

Bunun altına yada üstüne şunu ekle:
C++:
Genişlet Daralt Kopyala
    if(ch->GetGold() < 1000) //1m
    {
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("dungeon_info_ucret"));
        return;
    }

locale_string.txt içine ekle:
Kod:
Genişlet Daralt Kopyala
"dungeon_info_ucret";
"Yeterli paran olmadığı için işlem reddedildi";
 
Çözüm
int WarpCost;
WarpCost = 200000;

ch->PointChange(POINT_GOLD, - WarpCost);
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst