Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!
paylaşım için teşekkürler.
fikir iyi ancak gördüğüm kadarıyla kesilmemiş boss için herhangi bir kontrol yok. Boss kesilmediyse tekrar spawn atacak ve aynı yerde iki tane boss olacak. Bunu da koda eklemeni öneririm.
Paylaşım için teşekkürler eline sağlık.
Düzeltme: Boss hala yaşıyorsa aynı anda iki boss spawn olmaması için
[CODE lang="cpp" title="char_manager.cpp"]//ara
m_iMobExpRate = 100;
//altina ekle
#ifdef TETRA_#ifdefDI
m_iLastSurgunSpawnTime = -1;
m_dwLastSurgunBossVID = 0;
#endif
#endiflta ekle
#ifdef TETRA_#ifdefDI
void CHARACTER_MANAGER::AutoSurgunSpawn()
{
time_t now = time(0);
struct tm* vKey = localtime(&now);
// 2. Saat Kontrolü(Sadece saat tam 12:00 veya 00:00 iken spawnla)
if (((vKey->tm_hour == 12 && vKey->tm_min == 0) || (vKey->tm_hour == 0 && vKey->tm_min == 0)))
{
if (m_iLastSurgunSpawnTime != vKey->tm_hour)
{
/* Boss kesilmeden tekrar spawn atilmasin: onceki boss hala yasiyorsa atlama */
if (m_dwLastSurgunBossVID != 0)
{
LPCHARACTER pExisting = Find(m_dwLastSurgunBossVID);
if (pExisting && !pExisting->IsDead())
{
sys_log(0, "OTOMATIK_SPAWN: Onceki boss (VID %u) hala yaşıyor, spawn atlanıyor.", m_dwLastSurgunBossVID);
return;
}
m_dwLastSurgunBossVID = 0;
}
// Ayarlar
DWORD mobVnum = 1192; //Mob kodu
long mapIndex = 72; // Sürgün 1. Kat Indexi
long x = 136426; // oyundayken /state yazarak x y bilgisi alinir
long y = 1343407;
// Mobu olustur
LPCHARACTER ch = SpawnMob(mobVnum, mapIndex, x, y, 0, false, -1);
if (ch) {
m_dwLastSurgunBossVID = ch->GetVID();
SendNotice("Sürgün Mağarasının derinliklerinde Güçlü Buz Cadısı belirdi!");
sys_log(0, "OTOMATIK_SPAWN: %d vnumlu mob sürgün sonuna atıldı. Saat: %d", mobVnum, vKey->tm_hour);
m_iLastSurgunSpawnTime = vKey->tm_hour;
}
}
}
}
#endif[/CODE]#endif
Düzeltme: Boss hala yaşıyorsa aynı anda iki boss spawn olmaması için
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
[CODE lang="cpp" title="char_manager.cpp"]//ara
m_iMobExpRate = 100;
//altina ekle
#ifdef TETRA_#ifdefDI
m_iLastSurgunSpawnTime = -1;
m_dwLastSurgunBossVID = 0;
#endif
#endiflta ekle
#ifdef TETRA_#ifdefDI
void CHARACTER_MANAGER::AutoSurgunSpawn()
{
time_t now = time(0);
struct tm* vKey = localtime(&now);
// 2. Saat Kontrolü(Sadece saat tam 12:00 veya 00:00 iken spawnla)
if (((vKey->tm_hour == 12 && vKey->tm_min == 0) || (vKey->tm_hour == 0 && vKey->tm_min == 0)))
{
if (m_iLastSurgunSpawnTime != vKey->tm_hour)
{
/* Boss kesilmeden tekrar spawn atilmasin: onceki boss hala yasiyorsa atlama */
if (m_dwLastSurgunBossVID != 0)
{
LPCHARACTER pExisting = Find(m_dwLastSurgunBossVID);
if (pExisting && !pExisting->IsDead())
{
sys_log(0, "OTOMATIK_SPAWN: Onceki boss (VID %u) hala yaşıyor, spawn atlanıyor.", m_dwLastSurgunBossVID);
return;
}
m_dwLastSurgunBossVID = 0;
}
// Ayarlar
DWORD mobVnum = 1192; //Mob kodu
long mapIndex = 72; // Sürgün 1. Kat Indexi
long x = 136426; // oyundayken /state yazarak x y bilgisi alinir
long y = 1343407;
// Mobu olustur
LPCHARACTER ch = SpawnMob(mobVnum, mapIndex, x, y, 0, false, -1);
if (ch) {
m_dwLastSurgunBossVID = ch->GetVID();
SendNotice("Sürgün Mağarasının derinliklerinde Güçlü Buz Cadısı belirdi!");
sys_log(0, "OTOMATIK_SPAWN: %d vnumlu mob sürgün sonuna atıldı. Saat: %d", mobVnum, vKey->tm_hour);
m_iLastSurgunSpawnTime = vKey->tm_hour;
}
}
}
}
#endif[/CODE]#endif
Son düzenleme:
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 14
- Görüntüleme
- 1K
- Cevaplar
- 13
- Görüntüleme
- 3K
- Cevaplar
- 0
- Görüntüleme
- 69
- Cevaplar
- 4
- Görüntüleme
- 720
- Cevaplar
- 1
- Görüntüleme
- 209