- Katılım
- 5 Tem 2016
- Konular
- 26
- Mesajlar
- 306
- Reaksiyon Skoru
- 33
- Altın Konu
- 0
- Başarım Puanı
- 47
- TM Yaşı
- 9 Yıl 9 Ay 21 Gün
- MmoLira
- 12
- 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!
teşekkur ederim reis ibrahim'in filesten sökmeye üşeniyordum valla çok sağolasın.
![]()
Korayın 2015'te yazdığı sistemdir.
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
- Katılım
- 27 Ocak 2014
- Konular
- 3
- Mesajlar
- 94
- Online süresi
- 6g 35750s
- Reaksiyon Skoru
- 13
- Altın Konu
- 0
- Başarım Puanı
- 88
- TM Yaşı
- 12 Yıl 2 Ay 26 Gün
- MmoLira
- 5,758
- DevLira
- 0
Every 30 minutes :
SYSERR: Feb 21 00:30:04 :: RunState: LUA_ERROR: [string "dmg_record"]:6: attempt to concatenate local `owner' (a function value)
SYSERR: Feb 21 00:30:04 :: WriteRunningStateToSyserr: LUA_ERROR: quest dmg_record.start click
Rubish...
SYSERR: Feb 21 00:30:04 :: RunState: LUA_ERROR: [string "dmg_record"]:6: attempt to concatenate local `owner' (a function value)
SYSERR: Feb 21 00:30:04 :: WriteRunningStateToSyserr: LUA_ERROR: quest dmg_record.start click
Rubish...
- 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
- 588
- Cevaplar
- 6
- Görüntüleme
- 181


