- Katılım
- 22 Nis 2010
- Konular
- 65
- Mesajlar
- 980
- Reaksiyon Skoru
- 96
- Altın Konu
- 0
- Başarım Puanı
- 87
- TM Yaşı
- 16 Yıl 1 Gün
- MmoLira
- 0
- DevLira
- 0
Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!
![]()
Yapılan en yüksek hasarı sisteme kaydeder ve yeni rekor kırıldıkça duyuru geçer isteğe göre ödül felanda ekleyebilirsiniz
*char.cpp
Arat:
Kod:// MINING m_pkMiningEvent = NULL; // END_OF_MINING
Üstüne ekle:
Kod:m_pkRecordControlEvent = NULL;
Arat:
Kod:m_dwMountTime = 0;
Üstüne ekle:
Kod:m_nGetDamageRecord = quest::CQuestManager::instance().GetEventFlag("damage_record");
Arat:
Kod://DELAYED_WARP event_cancel(&m_pkWarpEvent); event_cancel(&m_pkCheckSpeedHackEvent); //END_DELAYED_WARP
Altına ekle:
Kod:event_cancel(&m_pkRecordControlEvent);
Arat:
Kod:int CHARACTER::GetSkillPowerByLevel(int level, bool bMob) const { return CTableBySkill::instance().GetSkillPowerByLevelFromType(GetJob(), GetSkillGroup(), MINMAX(0, level, SKILL_MAX_LEVEL), bMob); }
Altına ekle:
Kod:void CHARACTER::SetDamageRecord(int igetnewrecord){ m_nGetDamageRecord = igetnewrecord; } void CHARACTER::CheckDamageRecord(){ int igetnewrecord = quest::CQuestManager::instance().GetEventFlag("damage_record"); if (igetnewrecord != GetDamageRecord()) SetDamageRecord(igetnewrecord); } EVENTFUNC(record_check_event) { char_event_info* info = dynamic_cast<char_event_info*>(event->info); if (info == NULL) { sys_err("record_check_event> <Factor> Null pointer"); return 0; } LPCHARACTER ch = info->ch; if (ch == NULL) { // <Factor> return 0; } ch->CheckDamageRecord(); return PASSES_PER_SEC(10); } void CHARACTER::InitRecordControlEvent(){ if (m_pkRecordControlEvent) return; char_event_info* info = AllocEventInfo<char_event_info>(); info->ch = this; m_pkRecordControlEvent = event_create(record_check_event, info, PASSES_PER_SEC(10)); }
*char.h
Arat:
Kod:int m_iMaxAggro; // End of Battle
Altına ekle:
Kod:LPEVENT m_pkRecordControlEvent; int m_nGetDamageRecord; public: void InitRecordControlEvent(); int GetDamageRecord() const { return m_nGetDamageRecord; } void SetDamageRecord(int igetnewrecord); void CheckDamageRecord();
*char_battle.cpp
Arat:
Kod:if (GetHP() <= 0) { Stun(); if (pAttacker && !pAttacker->IsNPC()) m_dwKillerPID = pAttacker->GetPlayerID(); else m_dwKillerPID = 0; }
Altına ekle:
Kod:if (pAttacker->IsPC()){ int newdam = dam; if (newdam > GetDamageRecord()) { SetDamageRecord(newdam); quest::CQuestManager::instance().RequestSetEventFlag("damage_record", newdam); quest::CQuestManager::instance().RequestSetEventFlag("damage_record_own", pAttacker->GetPlayerID()); char buf[250]; snprintf(buf, sizeof(buf), "%s isimli oyuncu %d damage ile damage rekorunu kırdı !", pAttacker->GetName(), dam); SendNotice(buf); } }
*input_login.cpp
Arat:
Kod:if (g_noticeBattleZone) { if (FN_is_battle_zone(ch)) { ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("ÀÌ ¸Ê¿¡¼± °Á¦ÀûÀÎ ´ëÀüÀÌ ÀÖÀ»¼ö µµ ÀÖ½À´Ï´Ù.")); ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("ÀÌ Á¶Ç׿¡ µ¿ÀÇÇÏÁö ¾ÊÀ»½Ã")); ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("º»ÀÎÀÇ ÁÖ¼º ¹× ºÎ¼ºÀ¸·Î µ¹¾Æ°¡½Ã±â ¹Ù¶ø´Ï´Ù.")); } }
Altına ekle:
Kod:ch->InitRecordControlEvent();
*questlua_global.cpp
Arat:
Üstüne ekle:Kod:{ "add_ox_quiz", _add_ox_quiz },
Kod:{ "reset_damage_record", _reload_damage_record }, { "get_damage_record", _get_damage_record }, { "get_damage_record_owner", _get_damage_record_owner },
Arat:
Üstüne ekle:Kod:void RegisterGlobalFunctionTable(lua_State* L)
Kod:int _reload_damage_record(lua_State* L) { quest::CQuestManager::instance().SetEventFlag("damage_record", 0); SendNotice("Damage rekoru sifirlandi"); return 1; } int _get_damage_record(lua_State* L) { int iDamageRecord = quest::CQuestManager::instance().GetEventFlag("damage_record"); if (iDamageRecord) lua_pushnumber(L, iDamageRecord); else lua_pushnumber(L, 0); return 1; } int _get_damage_record_owner(lua_State* L) { int iDamageRecordOwnerPid = quest::CQuestManager::instance().GetEventFlag("damage_record_own"); if (iDamageRecordOwnerPid){ LPCHARACTER chRecordOwner = CHARACTER_MANAGER::instance().FindByPID(iDamageRecordOwnerPid); if (chRecordOwner){ lua_pushstring(L, chRecordOwner->GetName()); } } return 1; }
Basit bir kontrol paneli:
Kod:--[[ Yeni quest fonksiyonlarını quest_functions dosyasına ekleyin: get_damage_record get_damage_record_owner reset_damage_record --]] quest dmg_record begin state start begin when 20094.chat."Damage Rekor " with pc.is_gm() begin local s = select("Rekoru Sifirla", "Rekor sahibi", "Rekoru Oto Duyur", "Iptal") if s == 1 then reset_damage_record() elseif s == 2 then local record, owner = get_damage_record(), get_damage_record_owner() say_title("Damage Rekor bilgi") say("Damage rekoru:") say(record) say("Damage rekoru Sahibi:") say(owner) elseif s == 3 then local s_duyuru = select("Duyuruyu Ac", "Duyuruyu Kapat", "Iptal") if s_duyuru == 1 then clear_server_timer("oto_duyuru_rekor") server_loop_timer("oto_duyuru_rekor", 40) syschat("Otomatik Duyuru kisa sure icinde baslatilacak") elseif s_duyuru == 2 then clear_server_timer("oto_duyuru_rekor") syschat("Otomatik Duyuru durduruldu") elseif s_duyuru == 3 then return end elseif s == 4 then return end end when oto_duyuru_rekor.server_timer begin local time = os.date("%X") local splitData = dmg_record.split(time, ':') local newtime = tostring(splitData[1].. ":".. splitData[2]) if newtime == "00:30" or newtime == "01:30" or newtime == "02:30" or newtime == "03:30" or newtime == "04:30" or newtime == "05:30" or newtime == "06:30" or newtime == "07:30" or newtime == "08:30" or newtime == "09:30" or newtime == "10:30" or newtime == "11:30" or newtime == "12:30" or newtime == "13:30" or newtime == "14:30" or newtime == "15:30" or newtime == "16:30" or newtime == "17:30" or newtime == "18:30" or newtime == "19:30" or newtime == "20:30" or newtime == "21:30" or newtime == "22:30" or newtime == "23:30" then local record, owner = get_damage_record(), get_damage_record_owner() notice_all("Guncel damage rekor sahibi: "..owner .." Rekoru: "..record) end end function split(command_, x) return dmg_record.split_(command_,x) end function split_(string_,delimiter) local result = { } local from = 1 local delim_from, delim_to = string.find( string_, delimiter, from ) while delim_from do table.insert( result, string.sub( string_, from , delim_from-1 ) ) from = delim_to + 1 delim_from, delim_to = string.find( string_, delimiter, from ) end table.insert( result, string.sub( string_, from ) ) return result end end end
Koray Abi Sorun Nerede En Son Atılan Damageyi Rekor Olarak Sayıyor Mesela ben 70 K vurdum 69 k Vurunca Gene Kırdı Diye Yazıyor 70 K YI Gecince Yazmasını İstiyorum Ben
- Katılım
- 21 Haz 2013
- Konular
- 198
- Mesajlar
- 1,720
- Online süresi
- 17g 4617s
- Reaksiyon Skoru
- 2,643
- Altın Konu
- 3
- Başarım Puanı
- 278
- TM Yaşı
- 12 Yıl 10 Ay 5 Gün
- MmoLira
- 450
- DevLira
- 103
return PASSES_PER_SEC(10);
m_pkRecordControlEvent = event_create(record_check_event, info, PASSES_PER_SEC(10));
Maks. damage oyunculara 10snde yansır 10 yazan yerleri 1 olarak değiştirip dene
m_pkRecordControlEvent = event_create(record_check_event, info, PASSES_PER_SEC(10));
Maks. damage oyunculara 10snde yansır 10 yazan yerleri 1 olarak değiştirip dene
- Katılım
- 22 Nis 2010
- Konular
- 65
- Mesajlar
- 980
- Reaksiyon Skoru
- 96
- Altın Konu
- 0
- Başarım Puanı
- 87
- TM Yaşı
- 16 Yıl 1 Gün
- MmoLira
- 0
- DevLira
- 0
return PASSES_PER_SEC(10);
m_pkRecordControlEvent = event_create(record_check_event, info, PASSES_PER_SEC(10));
Maks. damage oyunculara 10snde yansır 10 yazan yerleri 1 olarak değiştirip dene
Bu Sekildemi Abi Üsteki Secondla Alakalı Bişey Varmı ?
- Katılım
- 28 Eki 2015
- Konular
- 4
- Mesajlar
- 312
- Reaksiyon Skoru
- 23
- Altın Konu
- 0
- Başarım Puanı
- 39
- TM Yaşı
- 10 Yıl 5 Ay 27 Gün
- MmoLira
- 0
- DevLira
- 0
teşekkür Faydalı
- Durum
- Üzgünüz bu konu cevaplar için kapatılmıştır...
Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)
Benzer konular
- Cevaplar
- 7
- Görüntüleme
- 343
- Cevaplar
- 3
- Görüntüleme
- 672
- Cevaplar
- 8
- Görüntüleme
- 822





