kamu spotu"Bu haritada x dakikadır aktifsin" diye örnek kod ekledim.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Bunun gibi birçok şey yapılabilir
Sonuç:
![]()
if (count%30==0)
IAbstractChat::GetSingleton().AppendChat(CHAT_TYPE_INFO, "Uzun süre bilgisayar oynamak sağlınıza zarar verir");
Son düzenleme:
hmm anlıyoruz https://forum.turkmmo.com/konu/3650914-kyanit-itemleri/hiç biriniz tam anlamıyla bir programa dili bilmiyorsunuz ikinizde biliyor gibi konuşuyorsunuz sadece classların ne işe yaradığını zamanla anlamışsınız ama c++ veya c# veya başka herhangi bir dilde desteksiz yürüyemiyorsunuz ve hala birbirinize sen bilmiyor diyorsunuz ikinizde bilmiyorsunuz.Ufak tefek şeyler eklemek başka bişeydir dili bilmek başka bişeydir bildiğiniz absürt bişey yok aslında
Bir event ile işimiz bittikten sonra sildirilmesi daha iyi olmazmı? Kullananların işine yarayacaktır.
Buda game tarzı event içerisinde bir sonraki eventin ne zaman gelmesi için mantığı.
Kod:
if (event.second->time <= now)
{
event.second->func();
event.second->count--;
event.second->bind++;
event.second->time = now + static_cast<float>(event.second->wait);
}
değiştir.
if (event.second->time <= now)
{
if(event.second->func() == 0)
{
DeleteEvent(event.first);
continue;
}
event.second->count--;
event.second->bind++;
event.second->time = now + static_cast<float>(event.second->wait);
}
int SendMessageEvent()
{
const auto &hndl = EventHandler::Instance().GetHandler("PlayMessage");
if (!hndl)
return 1; // eventi bitirme devam et
if(CPythonBackground::Instance().GetWarpMapName() != "map_n_snowm_01") // sadece sohan dağı
return 0; // eventi bitir
char msg[128];
int count = hndl->get()->bind; // how many called
_snprintf(msg, sizeof(msg), "You are active %d minute in this map!", count);
if (count)
IAbstractChat::GetSingleton().AppendChat(CHAT_TYPE_INFO, msg);
return 1;
}
Buda game tarzı event içerisinde bir sonraki eventin ne zaman gelmesi için mantığı.
Kod:
if (event.second->time <= now)
{
event.second->func();
event.second->count--;
event.second->bind++;
event.second->time = now + static_cast<float>(event.second->wait);
}
değiştir.
if (event.second->time <= now)
{
int szTime = event.second->func();
if(szTime == 0)
{
DeleteEvent(event.first);
continue;
}
event.second->count--;
event.second->bind++;
event.second->time = now + static_cast<float>(szTime);
}
int SendMessageEvent()
{
const auto &hndl = EventHandler::Instance().GetHandler("PlayMessage");
if (!hndl)
return 2; // eventi bitirme, devam et 2 saniye sonra
if(CPythonBackground::Instance().GetWarpMapName() != "map_n_snowm_01") // sadece sohan dağı
return 0; // eventi bitir
char msg[128];
int count = hndl->get()->bind; // how many called
_snprintf(msg, sizeof(msg), "You are active %d minute in this map!", count);
if (count)
IAbstractChat::GetSingleton().AppendChat(CHAT_TYPE_INFO, msg);
return 60; // 60 saniye sonra bir daha
}
Son düzenleme:
- Durum
- Üzgünüz bu konu cevaplar için kapatılmıştır...
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 4
- Görüntüleme
- 170
- Cevaplar
- 2
- Görüntüleme
- 415
- Cevaplar
- 3
- Görüntüleme
- 83
- Cevaplar
- 2
- Görüntüleme
- 283
- Cevaplar
- 19
- Görüntüleme
- 2K