KODevelopers 438 #1 Oluşturuldu: Temmuz 26, 2017 ?? Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
EveryBodyFool 198 #2 Temmuz 26, 2017 tarihinde gönderildi Acaba eventlar için altyapı olmadığı için olabilir mi dosyalarında? Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
KODevelopers 438 #3 Konu Sahibi Temmuz 26, 2017 tarihinde gönderildi Alıntı Acaba eventlar için altyapı olmadığı için olabilir mi dosyalarında? Sanmıyorum ki bakmak istersen tw atayim ?@ EveryBodyFool Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
EveryBodyFool 198 #4 Temmuz 26, 2017 tarihinde gönderildi En azından hatanın nereden olduğunu düşündüğün yeri göster oradan yardım edilir. Böyle elde hiçbir detay olmadan bulunamaz. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
KODevelopers 438 #5 Konu Sahibi Temmuz 26, 2017 tarihinde gönderildi Hemen bakayim.. @ EveryBodyFool Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
CerfiN 67 #6 Temmuz 26, 2017 tarihinde gönderildi Level kısıtlaması mı var acaba. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
KODevelopers 438 #7 Konu Sahibi Temmuz 26, 2017 tarihinde gönderildi MAX_LEVEL_1=83 MAX_LEVEL_2=83 MAX_LEVEL_3=83 MAX_LEVEL_4=83 MAX_LEVEL_5=83 MIN_LEVEL_1=35 MIN_LEVEL_2=35 MIN_LEVEL_3=35 MIN_LEVEL_4=35 MIN_LEVEL_5=35 @ CerfiN bunla ekledim de .ini de bağlı cünkü gene aynı olmadı bakmayı çalışıyorum. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
KODevelopers 438 #8 Konu Sahibi Temmuz 26, 2017 tarihinde gönderildi void CGameServerDlg::TempleEventTimer() { uint32 nHour = g_localTime.tm_hour; uint32 nMinute = g_localTime.tm_min; uint32 nSeconds = g_localTime.tm_sec; std::string RemainNotice; if (m_nTempleEventRemainSeconds > 0) m_nTempleEventRemainSeconds--; if (pTempleEvent.ActiveEvent == -1) { for (int i = 0; i < BORDER_DEFENSE_WAR_EVENT_COUNT; i++) { if (nHour == m_nBorderDefenseWarTime[i] && nMinute == 0) { pTempleEvent.ActiveEvent = TEMPLE_EVENT_BORDER_DEFENCE_WAR; pTempleEvent.ZoneID = ZONE_BORDER_DEFENSE_WAR; m_nTempleEventRemainSeconds = 600; // 10 minutes TempleEventStart(); break; } } for (int i = 0; i < CHAOS_EVENT_COUNT; i++) { if (nHour == m_nChaosTime[i] && nMinute == 0) { pTempleEvent.ActiveEvent = TEMPLE_EVENT_CHAOS; pTempleEvent.ZoneID = ZONE_CHAOS_DUNGEON; m_nTempleEventRemainSeconds = 600; // 10 minutes TempleEventStart(); break; } } for (int i = 0; i < JURAD_MOUNTAIN_EVENT_COUNT; i++) { if (nHour == m_nJuraidTime[i] && nMinute == 5) { Announcement(IDS_JURAD_EVENT_NOTICE); } if (nHour == m_nJuraidTime[i] && nMinute == 0) { pTempleEvent.ActiveEvent = TEMPLE_EVENT_JURAD_MOUNTAIN; pTempleEvent.ZoneID = ZONE_JURAD_MOUNTAIN; m_nTempleEventRemainSeconds = 600; // 10 minutes JuraidTempleEventStart(); break; } } } else if (pTempleEvent.ActiveEvent != -1) { if (pTempleEvent.ActiveEvent == TEMPLE_EVENT_BORDER_DEFENCE_WAR) { for(int i = 0 ; i < MAX_TEMPLE_EVENT_ROOM ; i++) { if(pTempleEvent.m_sMiniTimerNation[i] == 0) continue; if(pTempleEvent.m_sBdwMiniTimer[i]-- != 0 ) continue; TempleEventFinish(i,pTempleEvent.m_sMiniTimerNation[i]); } for(int i = 0; i < BORDER_DEFENSE_WAR_EVENT_COUNT; i++) { if (nHour == m_nBorderDefenseWarTime[i] && nMinute == 10 && nSeconds == 0) { m_nTempleEventRemainSeconds = 0; pTempleEvent.LastEventRoom = 1; pTempleEvent.isActive = true; TempleEventStart(); TempleEventTeleportUsers(); TempleEventSummon(); break; } else if (nHour == m_nBorderDefenseWarTime[i] && nMinute == 11 && nSeconds == 0) { pTempleEvent.isAttackable = true; break; } else if (nHour == m_nBorderDefenseWarTime[i] && nMinute == 40 && nSeconds == 0) { TerminationFinish(); pTempleEvent.isAttackable = false; break; } else if (nHour == m_nBorderDefenseWarTime[i] && nMinute == 40 && nSeconds == 20) { foreach_stlmap (itr, m_TempleEventUserArray) { CUser * pUser = GetUserPtr(itr->second->m_socketID); if (pUser == nullptr || !pUser->isInGame()) continue; TempleEventFinish(pUser->GetEventRoom(),pUser->GetNation()); } break; } else if (nHour == m_nBorderDefenseWarTime[i] && nMinute == 40 && nSeconds == 30) { printf("BORDER DEFANSE WAR TUM KANALLAR KAPATILDI ! "); TempleEventReset(); break; } } } if (pTempleEvent.ActiveEvent == TEMPLE_EVENT_CHAOS) { for(int i = 0; i < CHAOS_EVENT_COUNT; i++) { if (nHour == m_nChaosTime[i] && nMinute == 10 && nSeconds == 0) { m_nTempleEventRemainSeconds = 0; pTempleEvent.LastEventRoom = 1; pTempleEvent.isActive = true; TempleEventStart(); // Set RemainSeconds to zero TempleEventTeleportUsers(); TempleEventSummon(); break; } else if (nHour == m_nChaosTime[i] && nMinute == 11 && nSeconds == 0) { pTempleEvent.isAttackable = true; break; } else if (nHour == m_nChaosTime[i] && nMinute == 30 && nSeconds == 0) { TerminationFinish(); pTempleEvent.isAttackable = false; break; } else if (nHour == m_nChaosTime[i] && nMinute == 30 && nSeconds == 20) { foreach_stlmap (itr, m_TempleEventUserArray) { CUser * pUser = GetUserPtr(itr->second->m_socketID); if (pUser == nullptr || !pUser->isInGame()) continue; TempleEventFinish(pUser->GetEventRoom(),pUser->GetNation()); } break; } else if (nHour == m_nChaosTime[i] && nMinute == 30 && nSeconds == 30) { printf("CHAOS EXPANSION TUM KANALLAR KAPATILDI ! "); TempleEventReset(); break; } } } if (pTempleEvent.ActiveEvent == TEMPLE_EVENT_JURAD_MOUNTAIN) { for(int i = 0; i < JURAD_MOUNTAIN_EVENT_COUNT; i++) { if (nHour == m_nJuraidTime[i] && nMinute == 10 && nSeconds == 0) { m_nTempleEventRemainSeconds = 0; pTempleEvent.LastEventRoom = 1; pTempleEvent.isActive = true; JuraidTempleEventStart(); TempleEventTeleportUsers(); TempleEventSummon(); break; } else if (nHour == m_nJuraidTime[i] && nMinute == 11 && nSeconds == 0) { pTempleEvent.isAttackable = true; break; } else if (nHour == m_nJuraidTime[i] && nMinute == 50 && nSeconds == 0) { TerminationFinish(); pTempleEvent.isAttackable = false; break; } else if (nHour == m_nJuraidTime[i] && nMinute == 50 && nSeconds == 20) { foreach_stlmap (itr, m_TempleEventUserArray) { CUser * pUser = GetUserPtr(itr->second->m_socketID); if (pUser == nullptr || !pUser->isInGame()) continue; TempleEventFinish(pUser->GetEventRoom(),pUser->GetNation()); } break; } else if (nHour == m_nJuraidTime[i] && nMinute == 50 && nSeconds == 30) { printf("JURAID MOUNTION TUM KANALLAR KAPATILDI ! "); TempleEventReset(); break; } } } } } @ EveryBodyFool Bakarmısın Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
EveryBodyFool 198 #9 Temmuz 26, 2017 tarihinde gönderildi Alıntı void CGameServerDlg::TempleEventTimer() { uint32 nHour = g_localTime.tm_hour; uint32 nMinute = g_localTime.tm_min; uint32 nSeconds = g_localTime.tm_sec; std::string RemainNotice; if (m_nTempleEventRemainSeconds > 0) m_nTempleEventRemainSeconds--; if (pTempleEvent.ActiveEvent == -1) { for (int i = 0; i < BORDER_DEFENSE_WAR_EVENT_COUNT; i++) { if (nHour == m_nBorderDefenseWarTime[i] && nMinute == 0) { pTempleEvent.ActiveEvent = TEMPLE_EVENT_BORDER_DEFENCE_WAR; pTempleEvent.ZoneID = ZONE_BORDER_DEFENSE_WAR; m_nTempleEventRemainSeconds = 600; // 10 minutes TempleEventStart(); break; } } for (int i = 0; i < CHAOS_EVENT_COUNT; i++) { if (nHour == m_nChaosTime[i] && nMinute == 0) { pTempleEvent.ActiveEvent = TEMPLE_EVENT_CHAOS; pTempleEvent.ZoneID = ZONE_CHAOS_DUNGEON; m_nTempleEventRemainSeconds = 600; // 10 minutes TempleEventStart(); break; } } for (int i = 0; i < JURAD_MOUNTAIN_EVENT_COUNT; i++) { if (nHour == m_nJuraidTime[i] && nMinute == 5) { Announcement(IDS_JURAD_EVENT_NOTICE); } if (nHour == m_nJuraidTime[i] && nMinute == 0) { pTempleEvent.ActiveEvent = TEMPLE_EVENT_JURAD_MOUNTAIN; pTempleEvent.ZoneID = ZONE_JURAD_MOUNTAIN; m_nTempleEventRemainSeconds = 600; // 10 minutes JuraidTempleEventStart(); break; } } } else if (pTempleEvent.ActiveEvent != -1) { if (pTempleEvent.ActiveEvent == TEMPLE_EVENT_BORDER_DEFENCE_WAR) { for(int i = 0 ; i < MAX_TEMPLE_EVENT_ROOM ; i++) { if(pTempleEvent.m_sMiniTimerNation[i] == 0) continue; if(pTempleEvent.m_sBdwMiniTimer[i]-- != 0 ) continue; TempleEventFinish(i,pTempleEvent.m_sMiniTimerNation[i]); } for(int i = 0; i < BORDER_DEFENSE_WAR_EVENT_COUNT; i++) { if (nHour == m_nBorderDefenseWarTime[i] && nMinute == 10 && nSeconds == 0) { m_nTempleEventRemainSeconds = 0; pTempleEvent.LastEventRoom = 1; pTempleEvent.isActive = true; TempleEventStart(); TempleEventTeleportUsers(); TempleEventSummon(); break; } else if (nHour == m_nBorderDefenseWarTime[i] && nMinute == 11 && nSeconds == 0) { pTempleEvent.isAttackable = true; break; } else if (nHour == m_nBorderDefenseWarTime[i] && nMinute == 40 && nSeconds == 0) { TerminationFinish(); pTempleEvent.isAttackable = false; break; } else if (nHour == m_nBorderDefenseWarTime[i] && nMinute == 40 && nSeconds == 20) { foreach_stlmap (itr, m_TempleEventUserArray) { CUser * pUser = GetUserPtr(itr->second->m_socketID); if (pUser == nullptr || !pUser->isInGame()) continue; TempleEventFinish(pUser->GetEventRoom(),pUser->GetNation()); } break; } else if (nHour == m_nBorderDefenseWarTime[i] && nMinute == 40 && nSeconds == 30) { printf("BORDER DEFANSE WAR TUM KANALLAR KAPATILDI ! "); TempleEventReset(); break; } } } if (pTempleEvent.ActiveEvent == TEMPLE_EVENT_CHAOS) { for(int i = 0; i < CHAOS_EVENT_COUNT; i++) { if (nHour == m_nChaosTime[i] && nMinute == 10 && nSeconds == 0) { m_nTempleEventRemainSeconds = 0; pTempleEvent.LastEventRoom = 1; pTempleEvent.isActive = true; TempleEventStart(); // Set RemainSeconds to zero TempleEventTeleportUsers(); TempleEventSummon(); break; } else if (nHour == m_nChaosTime[i] && nMinute == 11 && nSeconds == 0) { pTempleEvent.isAttackable = true; break; } else if (nHour == m_nChaosTime[i] && nMinute == 30 && nSeconds == 0) { TerminationFinish(); pTempleEvent.isAttackable = false; break; } else if (nHour == m_nChaosTime[i] && nMinute == 30 && nSeconds == 20) { foreach_stlmap (itr, m_TempleEventUserArray) { CUser * pUser = GetUserPtr(itr->second->m_socketID); if (pUser == nullptr || !pUser->isInGame()) continue; TempleEventFinish(pUser->GetEventRoom(),pUser->GetNation()); } break; } else if (nHour == m_nChaosTime[i] && nMinute == 30 && nSeconds == 30) { printf("CHAOS EXPANSION TUM KANALLAR KAPATILDI ! "); TempleEventReset(); break; } } } if (pTempleEvent.ActiveEvent == TEMPLE_EVENT_JURAD_MOUNTAIN) { for(int i = 0; i < JURAD_MOUNTAIN_EVENT_COUNT; i++) { if (nHour == m_nJuraidTime[i] && nMinute == 10 && nSeconds == 0) { m_nTempleEventRemainSeconds = 0; pTempleEvent.LastEventRoom = 1; pTempleEvent.isActive = true; JuraidTempleEventStart(); TempleEventTeleportUsers(); TempleEventSummon(); break; } else if (nHour == m_nJuraidTime[i] && nMinute == 11 && nSeconds == 0) { pTempleEvent.isAttackable = true; break; } else if (nHour == m_nJuraidTime[i] && nMinute == 50 && nSeconds == 0) { TerminationFinish(); pTempleEvent.isAttackable = false; break; } else if (nHour == m_nJuraidTime[i] && nMinute == 50 && nSeconds == 20) { foreach_stlmap (itr, m_TempleEventUserArray) { CUser * pUser = GetUserPtr(itr->second->m_socketID); if (pUser == nullptr || !pUser->isInGame()) continue; TempleEventFinish(pUser->GetEventRoom(),pUser->GetNation()); } break; } else if (nHour == m_nJuraidTime[i] && nMinute == 50 && nSeconds == 30) { printf("JURAID MOUNTION TUM KANALLAR KAPATILDI ! "); TempleEventReset(); break; } } } } } @ EveryBodyFool Bakarmısın Buradaki timer ile join butonunun bir alakası yok join butonuna bastığında gelen packet işleme giriyor orayı göster. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
CerfiN 67 #10 Temmuz 26, 2017 tarihinde gönderildi TempleEventJoin'mi neydi ona benzer bi fonksiyon olacaktı. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
Nero 846 Admin #11 Temmuz 26, 2017 tarihinde gönderildi gelen paketi verebilir misin, twostarsın mı sexyko dosyalarımı hangisinde alıyorsun bu hatayı Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
KODevelopers 438 #12 Konu Sahibi Temmuz 26, 2017 tarihinde gönderildi void CUser::TempleEventJoin() { if (g_pMain->pTempleEvent.ActiveEvent == TEMPLE_EVENT_JURAD_MOUNTAIN && !isEventUser()) { C3DMap * pMap = g_pMain->GetZoneByID(ZONE_JURAD_MOUNTAIN); if (pMap == nullptr) return; WarpListResponse errorReason; if (!CanChangeZone(pMap, errorReason)) { Packet hata(WIZ_WARP_LIST, uint8(2)); hata << uint8(errorReason); if (errorReason == WarpListMinLevel) hata << pMap->GetMinLevelReq(); if (g_pMain->pTempleEvent.ActiveEvent != -1 && GetLevel() < 70) Send(&hata); return; } Packet result (WIZ_SELECT_MSG); TempleOperations(TEMPLE_EVENT_JOIN); result << uint16(0x00) << uint8(0x07) << uint64(0x00) << uint32(0x06) << g_pMain->pTempleEvent.KarusUserCount << uint16(0x00) << g_pMain->pTempleEvent.ElMoradUserCount << uint16(0x00) << g_pMain->m_nTempleEventRemainSeconds << uint16(0x00); g_pMain->Send_All(&result); } else return; } @ CerfiN bunu mu diyorsun ? Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
KODevelopers 438 #13 Konu Sahibi Temmuz 26, 2017 tarihinde gönderildi @ Nero sexy src den almıyorum ki ben.. twostarsın den kullanıyorum. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
KODevelopers 438 #14 Konu Sahibi Temmuz 26, 2017 tarihinde gönderildi Gelen paketini bende yok konuyu paylaşmışdı da bulamadım onun konuyu.. @@ Nero Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
OzkanOzdemir 1.531 Admin #15 Temmuz 26, 2017 tarihinde gönderildi Alt tarafta anlatımını yaptığım kodlar herkes için geçerli olan sourcelerin içinden bakıp alınmıştır. Eğer ki sistemim farklı diyorsan gidip kendin yazmışsın demektir burada kendi yazdığın hakkında bilgi isteyemezsin. Yok efendim ben kendim yazmadım kodlar senin verdiğin ile aynı diyorsan bu saatten sonra cevap atan olursa hakkında işlem yapacağım haberiniz olsun. Kimse yardım etmeyecek kendi çözecektir. void CUser::TempleProcess(Packet &pkt ) bu fonksiyona clientten gelen packetler düşüyor. case TEMPLE_EVENT_JOIN: TempleOperations(opcode); break; aynı fonksiyon içerisinde switch ile opcode ayırıp TempleOperations fonksiyonuna join opcode olarak atıyor. void CUser::TempleOperations(uint8 bType) bu fonksiyon da ise şuan aktif olan evente göre senin o evente girebilecek misin yada giremeyecek misin kontrollerini sağlıyor. Gerisi sana kalmış hala çözemedim yada çözemiyorum dersen bi daha açtığın yardım konuları silinecektir. İleri ye gidersen bende ileriye giderim haberin olsun. Sana böyle davranmamın sebebi; -> Ben anticheat yazıyorum yada dosya yazıyorum diye milleti küçümsüyorsun. Bana özel mesaj atmayın kendiniz yapın demesini biliyorsun. -> İşine geldiğinde kendini acındırmasını biliyorsun ben söyleyim ben böyleyim bana yardım etmiyorsunuz diyorsun ama millete demediğini yapmadığını bırakmıyorsun. -> Yardım istemeden önce kendine bişeyler katmaya çalışmıyorsun. Benim söyle sorunum var diyip .cpp dosyasını olduğu gibi atıyorsun ve "Bunu düzeltip verir misin?" demeyi ayrıca "Teamviever vereyim gelin düzeltin" demesini biliyorsun ama gel gelelim yardım edilen şeye yada yazılan her hangi bir satır koda merak edip burası nasıl olmuş. Özkan canım, Özkan abi gel ben şurasını anlamadım bana anlatır mısın? Şu satır kod ne işe yarar? O yazdığın fonksiyon nedir ne yapar? Niye oraya öyle static class açtın neden yaptın? Bu tarz soruları bir kere olsun sormadığın için ve bilmişlik tasladığın için sana böyle davranıyorum. Bir an önce kendine çeki düzen ver. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
Anyone 56 #16 Temmuz 26, 2017 tarihinde gönderildi ini ye lvl sınırı yazdırmıs olmayasın 🙂 Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
KODevelopers 438 #17 Konu Sahibi Temmuz 26, 2017 tarihinde gönderildi Alıntı ini ye lvl sınırı yazdırmıs olmayasın 🙂 if (pTempleEvent.ActiveEvent == -1) { for (int i = 0; i < BORDER_DEFENSE_WAR_EVENT_COUNT; i++) { if (nHour == m_nBorderDefenseWarTime[i] && nMinute == 0) { pTempleEvent.ActiveEvent = TEMPLE_EVENT_BORDER_DEFENCE_WAR; pTempleEvent.ZoneID = ZONE_BORDER_DEFENSE_WAR; pTempleEvent.m_nBorderDefenseWarPrizeWonItemNo1 = m_nBorderDefenseWarPrizeWonItemNo1[i]; pTempleEvent.m_nBorderDefenseWarPrizeWonItemNo2 = m_nBorderDefenseWarPrizeWonItemNo2[i]; pTempleEvent.m_nBorderDefenseWarPrizeWonItemNo3 = m_nBorderDefenseWarPrizeWonItemNo3[i]; pTempleEvent.m_nBorderDefenseWarPrizeWonItemNo4_K = m_nBorderDefenseWarPrizeWonItemNo4_K[i]; pTempleEvent.m_nBorderDefenseWarPrizeWonItemNo4_H = m_nBorderDefenseWarPrizeWonItemNo4_H[i]; pTempleEvent.m_nBorderDefenseWarPrizeWonLoyalty = m_nBorderDefenseWarPrizeWonLoyalty[i]; pTempleEvent.m_nBorderDefenseWarPrizeWonKnightCash = m_nBorderDefenseWarPrizeWonKnightCash[i]; pTempleEvent.m_nBorderDefenseWarPrizeLoserKnightCash = m_nBorderDefenseWarPrizeLoserKnightCash[i]; pTempleEvent.m_nBorderDefenseWarPrizeLoserLoyalty = m_nBorderDefenseWarPrizeLoserLoyalty[i]; pTempleEvent.m_nBorderDefenseWarPrizeLoserItem = m_nBorderDefenseWarPrizeLoserItem[i]; pTempleEvent.m_nBorderDefenseWarMAXLEVEL = m_nBorderDefenseWarMAXLEVEL[i]; pTempleEvent.m_nBorderDefenseWarMINLEVEL = m_nBorderDefenseWarMINLEVEL[i]; m_nTempleEventRemainSeconds = 600; // 10 minutes TempleEventStart(); break; } } for (int i = 0; i < BORDER_DEFENSE_WAR_EVENT_COUNT; i++) { m_nBorderDefenseWarTime[i] = ini.GetInt("BDW",string_format("START_TIME%d",i+1).c_str(), 0); m_nBorderDefenseWarPrizeWonItemNo1[i] = ini.GetInt("BDW",string_format("ITEM_WON_PRIZE1_%d",i+1).c_str(), 0); m_nBorderDefenseWarPrizeWonItemNo2[i] = ini.GetInt("BDW",string_format("ITEM_WON_PRIZE2_%d",i+1).c_str(), 0); m_nBorderDefenseWarPrizeWonItemNo3[i] = ini.GetInt("BDW",string_format("ITEM_WON_PRIZE3_%d",i+1).c_str(), 0); m_nBorderDefenseWarPrizeWonItemNo4_K[i] = ini.GetInt("BDW",string_format("ITEM_WON_PRIZE4KARUS_%d",i+1).c_str(), 0); m_nBorderDefenseWarPrizeWonItemNo4_H[i] = ini.GetInt("BDW",string_format("ITEM_WON_PRIZE4HUMAN_%d",i+1).c_str(), 0); m_nBorderDefenseWarPrizeWonLoyalty[i] = ini.GetInt("BDW",string_format("ITEM_WON_PRIZE_LOYALTY_%d",i+1).c_str(), 0); m_nBorderDefenseWarPrizeWonKnightCash[i] = ini.GetInt("BDW",string_format("ITEM_WON_PRIZE_KC_%d",i+1).c_str(), 0); m_nBorderDefenseWarPrizeLoserKnightCash[i] = ini.GetInt("BDW",string_format("ITEM_LOSE_PRIZE_KC_%d",i+1).c_str(), 0); m_nBorderDefenseWarPrizeLoserLoyalty[i] = ini.GetInt("BDW",string_format("ITEM_LOSE_PRIZE_LOYALTY_%d",i+1).c_str(), 0); m_nBorderDefenseWarPrizeLoserItem[i] = ini.GetInt("BDW",string_format("ITEM_LOSE_PRIZE_ITEM_%d",i+1).c_str(), 0); m_nBorderDefenseWarMAXLEVEL[i] = ini.GetInt("BDW",string_format("MAX_LEVEL_%d",i+1).c_str(), 80); m_nBorderDefenseWarMINLEVEL[i] = ini.GetInt("BDW",string_format("MIN_LEVEL_%d",i+1).c_str(), 1); } [BDW] ITEM_LOSE_PRIZE_ITEM_1=0 ITEM_LOSE_PRIZE_ITEM_2=0 ITEM_LOSE_PRIZE_ITEM_3=0 ITEM_LOSE_PRIZE_ITEM_4=0 ITEM_LOSE_PRIZE_ITEM_5=0 ITEM_LOSE_PRIZE_KC_1=0 ITEM_LOSE_PRIZE_KC_2=0 ITEM_LOSE_PRIZE_KC_3=0 ITEM_LOSE_PRIZE_KC_4=0 ITEM_LOSE_PRIZE_KC_5=0 ITEM_LOSE_PRIZE_LOYALTY_1=0 ITEM_LOSE_PRIZE_LOYALTY_2=0 ITEM_LOSE_PRIZE_LOYALTY_3=0 ITEM_LOSE_PRIZE_LOYALTY_4=0 ITEM_LOSE_PRIZE_LOYALTY_5=0 ITEM_WON_PRIZE1_1=0 ITEM_WON_PRIZE1_2=0 ITEM_WON_PRIZE1_3=0 ITEM_WON_PRIZE1_4=0 ITEM_WON_PRIZE1_5=0 ITEM_WON_PRIZE2_1=0 ITEM_WON_PRIZE2_2=0 ITEM_WON_PRIZE2_3=0 ITEM_WON_PRIZE2_4=0 ITEM_WON_PRIZE2_5=0 ITEM_WON_PRIZE3_1=0 ITEM_WON_PRIZE3_2=0 ITEM_WON_PRIZE3_3=0 ITEM_WON_PRIZE3_4=0 ITEM_WON_PRIZE3_5=0 ITEM_WON_PRIZE4HUMAN_1=0 ITEM_WON_PRIZE4HUMAN_2=0 ITEM_WON_PRIZE4HUMAN_3=0 ITEM_WON_PRIZE4HUMAN_4=0 ITEM_WON_PRIZE4HUMAN_5=0 ITEM_WON_PRIZE4KARUS_1=0 ITEM_WON_PRIZE4KARUS_2=0 ITEM_WON_PRIZE4KARUS_3=0 ITEM_WON_PRIZE4KARUS_4=0 ITEM_WON_PRIZE4KARUS_5=0 ITEM_WON_PRIZE_KC_1=0 ITEM_WON_PRIZE_KC_2=0 ITEM_WON_PRIZE_KC_3=0 ITEM_WON_PRIZE_KC_4=0 ITEM_WON_PRIZE_KC_5=0 ITEM_WON_PRIZE_LOYALTY_1=0 ITEM_WON_PRIZE_LOYALTY_2=0 ITEM_WON_PRIZE_LOYALTY_3=0 ITEM_WON_PRIZE_LOYALTY_4=0 ITEM_WON_PRIZE_LOYALTY_5=0 MAX_LEVEL_1=83 MAX_LEVEL_2=83 MAX_LEVEL_3=83 MAX_LEVEL_4=83 MAX_LEVEL_5=83 MIN_LEVEL_1=35 MIN_LEVEL_2=35 MIN_LEVEL_3=35 MIN_LEVEL_4=35 MIN_LEVEL_5=35 START_TIME1=0 START_TIME2=0 START_TIME3=0 START_TIME4=0 START_TIME5=0 .ini bağlı sanki kardeş. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
KODevelopers 438 #18 Konu Sahibi Temmuz 26, 2017 tarihinde gönderildi Alıntı Alt tarafta anlatımını yaptığım kodlar herkes için geçerli olan sourcelerin içinden bakıp alınmıştır. Eğer ki sistemim farklı diyorsan gidip kendin yazmışsın demektir burada kendi yazdığın hakkında bilgi isteyemezsin. Yok efendim ben kendim yazmadım kodlar senin verdiğin ile aynı diyorsan bu saatten sonra cevap atan olursa hakkında işlem yapacağım haberiniz olsun. Kimse yardım etmeyecek kendi çözecektir. void CUser::TempleProcess(Packet &pkt ) bu fonksiyona clientten gelen packetler düşüyor. case TEMPLE_EVENT_JOIN: TempleOperations(opcode); break; aynı fonksiyon içerisinde switch ile opcode ayırıp TempleOperations fonksiyonuna join opcode olarak atıyor. void CUser::TempleOperations(uint8 bType) bu fonksiyon da ise şuan aktif olan evente göre senin o evente girebilecek misin yada giremeyecek misin kontrollerini sağlıyor. Gerisi sana kalmış hala çözemedim yada çözemiyorum dersen bi daha açtığın yardım konuları silinecektir. İleri ye gidersen bende ileriye giderim haberin olsun. Sana böyle davranmamın sebebi; -> Ben anticheat yazıyorum yada dosya yazıyorum diye milleti küçümsüyorsun. Bana özel mesaj atmayın kendiniz yapın demesini biliyorsun. -> İşine geldiğinde kendini acındırmasını biliyorsun ben söyleyim ben böyleyim bana yardım etmiyorsunuz diyorsun ama millete demediğini yapmadığını bırakmıyorsun. -> Yardım istemeden önce kendine bişeyler katmaya çalışmıyorsun. Benim söyle sorunum var diyip .cpp dosyasını olduğu gibi atıyorsun ve "Bunu düzeltip verir misin?" demeyi ayrıca "Teamviever vereyim gelin düzeltin" demesini biliyorsun ama gel gelelim yardım edilen şeye yada yazılan her hangi bir satır koda merak edip burası nasıl olmuş. Özkan canım, Özkan abi gel ben şurasını anlamadım bana anlatır mısın? Şu satır kod ne işe yarar? O yazdığın fonksiyon nedir ne yapar? Niye oraya öyle static class açtın neden yaptın? Bu tarz soruları bir kere olsun sormadığın için ve bilmişlik tasladığın için sana böyle davranıyorum. Bir an önce kendine çeki düzen ver. Kısmını orası yer.. void CUser::TempleOperations(uint8 bType) { uint16 nActiveEvent = (uint16)g_pMain->pTempleEvent.ActiveEvent; uint8 bResult = 1; Packet result(WIZ_EVENT); Packet result2(WIZ_SELECT_MSG); if (bType == TEMPLE_EVENT_JOIN && !isEventUser()) { if (nActiveEvent == TEMPLE_EVENT_CHAOS) { if (CheckExistItem(CHAOS_MAP, 1)) bResult = 1; else if (m_sItemArray[RIGHTHAND].nNum == MATTOCK || m_sItemArray[RIGHTHAND].nNum == GOLDEN_MATTOCK || isMining()) bResult = 4; else bResult = 3; } else if (nActiveEvent == TEMPLE_EVENT_BORDER_DEFENCE_WAR) { if (GetLevel() < g_pMain->pTempleEvent.m_nBorderDefenseWarMINLEVEL) bResult = WarpListMinLevel; } result << bType << bResult << nActiveEvent; Send(&result); if (bResult == 1) { GetNation() == KARUS ? g_pMain->pTempleEvent.KarusUserCount++ : g_pMain->pTempleEvent.ElMoradUserCount++; g_pMain->pTempleEvent.AllUserCount = (g_pMain->pTempleEvent.KarusUserCount + g_pMain->pTempleEvent.ElMoradUserCount); g_pMain->AddEventUser(this); TempleOperations(TEMPLE_EVENT_COUNTER); } } else if (bType == TEMPLE_EVENT_DISBAND && isEventUser()) { GetNation() == KARUS ? g_pMain->pTempleEvent.KarusUserCount-- : g_pMain->pTempleEvent.ElMoradUserCount--; g_pMain->pTempleEvent.AllUserCount = g_pMain->pTempleEvent.KarusUserCount + g_pMain->pTempleEvent.ElMoradUserCount; g_pMain->RemoveEventUser(this); result << bType << bResult << nActiveEvent; Send(&result); TempleOperations(TEMPLE_EVENT_COUNTER); } else if (bType == TEMPLE_EVENT_COUNTER) { result << bType << nActiveEvent; if (nActiveEvent == TEMPLE_EVENT_CHAOS) result << g_pMain->pTempleEvent.AllUserCount; else if (nActiveEvent == TEMPLE_EVENT_BORDER_DEFENCE_WAR) result << g_pMain->pTempleEvent.KarusUserCount << g_pMain->pTempleEvent.ElMoradUserCount; else if (nActiveEvent == TEMPLE_EVENT_JURAD_MOUNTAIN) result2 << uint16(0x00) << uint8(0x07) << uint64(0x00) << uint32(0x06) << g_pMain->pTempleEvent.KarusUserCount << uint16(0x00) << g_pMain->pTempleEvent.ElMoradUserCount << uint16(0x00) << g_pMain->m_nTempleEventRemainSeconds << uint16(0x00); if (nActiveEvent == TEMPLE_EVENT_JURAD_MOUNTAIN) g_pMain->Send_All(&result2, nullptr, Nation::ALL, 0, true, 0); else g_pMain->Send_All(&result, nullptr, Nation::ALL, 0, true, 0); } } Yapmayı çalışıyorum sanki.. yapamam demiyorum yapmayı çalışıyorum.. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
Anyone 56 #19 Temmuz 26, 2017 tarihinde gönderildi emre ugrasma orda bak zaten ini ye attıgını goreceksin m_nBorderDefenseWarMAXLEVEL = ini.GetInt("BDW",string_format("MAX_LEVEL_%d",i+1).c_str(), 80); ini den 83 yap yada direk src dan 83 yap build le sorun kalmaz bu src u tanıyorum bi ara vardı sildim attım cok acıkları var gereksiz seyler var. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
Nero 846 Admin #20 Temmuz 26, 2017 tarihinde gönderildi ben paketleri istemeden önce inceledim, işin ilginç tarafı stat puanları ile alakalı bi kontrol göremedim, o yüzden istedim gelen paket verilerini çünkü retval ne bilmek gerekiyor hatayı çözebilmek için void CUser::TempleOperations(uint8 bType) { uint16 nActiveEvent = (uint16)g_pMain->pTempleEvent.ActiveEvent; uint8 bResult = 1; Packet result(WIZ_EVENT); if(bType == TEMPLE_EVENT_JOIN && !isEventUser()) { if (nActiveEvent == TEMPLE_EVENT_CHAOS) { if (CheckExistItem(CHAOS_MAP,1)) bResult = 1; else if (m_sItemArray[RIGHTHAND].nNum == MATTOCK || m_sItemArray[RIGHTHAND].nNum == GOLDEN_MATTOCK || isMining()) bResult = 4; else bResult = 3; } result << bType << bResult << nActiveEvent; Send(&result); if (bResult == 1) { GetNation() == KARUS ? g_pMain->pTempleEvent.KarusUserCount++ :g_pMain->pTempleEvent.ElMoradUserCount++; g_pMain->pTempleEvent.AllUserCount = (g_pMain->pTempleEvent.KarusUserCount + g_pMain->pTempleEvent.ElMoradUserCount); g_pMain->AddEventUser(this); TempleOperations(TEMPLE_EVENT_COUNTER); } } else if (bType == TEMPLE_EVENT_DISBAND && isEventUser()) { GetNation() == KARUS ? g_pMain->pTempleEvent.KarusUserCount-- : g_pMain->pTempleEvent.ElMoradUserCount--; g_pMain->pTempleEvent.AllUserCount = g_pMain->pTempleEvent.KarusUserCount + g_pMain->pTempleEvent.ElMoradUserCount; g_pMain->RemoveEventUser(this); result << bType << bResult << nActiveEvent; Send(&result); TempleOperations(TEMPLE_EVENT_COUNTER); } else if (bType == TEMPLE_EVENT_COUNTER) { result << bType << nActiveEvent; if(nActiveEvent == TEMPLE_EVENT_CHAOS) result << g_pMain->pTempleEvent.AllUserCount; else result << g_pMain->pTempleEvent.KarusUserCount << g_pMain->pTempleEvent.ElMoradUserCount; g_pMain->Send_All(&result,nullptr,Nation::ALL,0,true,0); } } bu seçtiğim kırmızı olarak renklendirdiğim yerler çalışıyor sırası ile sanırım, belki, uint16 nActiveEvent = (uint16)g_pMain->pTempleEvent.ActiveEvent; burada problem olabilir, bdw yerine başka bir event algılıyor ise if (nActiveEvent == TEMPLE_EVENT_CHAOS) burdan sonrası çalışıyordur ve retval yanlış bir şekilde değişiyordur Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
Nero 846 Admin #21 Temmuz 26, 2017 tarihinde gönderildi biraz daha inceledim ve burası iptal edilmiş Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
KODevelopers 438 #22 Konu Sahibi Temmuz 26, 2017 tarihinde gönderildi Alıntı ben paketleri istemeden önce inceledim, işin ilginç tarafı stat puanları ile alakalı bi kontrol göremedim, o yüzden istedim gelen paket verilerini çünkü retval ne bilmek gerekiyor hatayı çözebilmek için void CUser::TempleOperations(uint8 bType) { uint16 nActiveEvent = (uint16)g_pMain->pTempleEvent.ActiveEvent; uint8 bResult = 1; Packet result(WIZ_EVENT); if(bType == TEMPLE_EVENT_JOIN && !isEventUser()) { if (nActiveEvent == TEMPLE_EVENT_CHAOS) { if (CheckExistItem(CHAOS_MAP,1)) bResult = 1; else if (m_sItemArray[RIGHTHAND].nNum == MATTOCK || m_sItemArray[RIGHTHAND].nNum == GOLDEN_MATTOCK || isMining()) bResult = 4; else bResult = 3; } result << bType << bResult << nActiveEvent; Send(&result); if (bResult == 1) { GetNation() == KARUS ? g_pMain->pTempleEvent.KarusUserCount++ :g_pMain->pTempleEvent.ElMoradUserCount++; g_pMain->pTempleEvent.AllUserCount = (g_pMain->pTempleEvent.KarusUserCount + g_pMain->pTempleEvent.ElMoradUserCount); g_pMain->AddEventUser(this); TempleOperations(TEMPLE_EVENT_COUNTER); } } else if (bType == TEMPLE_EVENT_DISBAND && isEventUser()) { GetNation() == KARUS ? g_pMain->pTempleEvent.KarusUserCount-- : g_pMain->pTempleEvent.ElMoradUserCount--; g_pMain->pTempleEvent.AllUserCount = g_pMain->pTempleEvent.KarusUserCount + g_pMain->pTempleEvent.ElMoradUserCount; g_pMain->RemoveEventUser(this); result << bType << bResult << nActiveEvent; Send(&result); TempleOperations(TEMPLE_EVENT_COUNTER); } else if (bType == TEMPLE_EVENT_COUNTER) { result << bType << nActiveEvent; if(nActiveEvent == TEMPLE_EVENT_CHAOS) result << g_pMain->pTempleEvent.AllUserCount; else result << g_pMain->pTempleEvent.KarusUserCount << g_pMain->pTempleEvent.ElMoradUserCount; g_pMain->Send_All(&result,nullptr,Nation::ALL,0,true,0); } } bu seçtiğim kırmızı olarak renklendirdiğim yerler çalışıyor sırası ile sanırım, belki, uint16 nActiveEvent = (uint16)g_pMain->pTempleEvent.ActiveEvent; burada problem olabilir, bdw yerine başka bir event algılıyor ise if (nActiveEvent == TEMPLE_EVENT_CHAOS) burdan sonrası çalışıyordur ve retval yanlış bir şekilde değişiyordur @ Nero tamamdır düzeltim teşekkür ederim şimdide oldu. yardımcı oldu valla teşekkür ederim. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
KODevelopers 438 #23 Konu Sahibi Temmuz 26, 2017 tarihinde gönderildi Alıntı emre ugrasma orda bak zaten ini ye attıgını goreceksin m_nBorderDefenseWarMAXLEVEL = ini.GetInt("BDW",string_format("MAX_LEVEL_%d",i+1).c_str(), 80); ini den 83 yap yada direk src dan 83 yap build le sorun kalmaz bu src u tanıyorum bi ara vardı sildim attım cok acıkları var gereksiz seyler var. bende öyle sanki orası da sıkındı degil miş gene teşekkür ederim.. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
Nero 846 Admin #24 Temmuz 26, 2017 tarihinde gönderildi o iptal edilen yerlerde benim ilk postumda bahsettiğim değişkene bdw eventid atayan bir bölüm var o atanmadığı için büyük ihtimal dediğim gibi chaos olarak kalıyor eventid ve o yüzden chaos kontrol bölümünde olan retval dönüş yapıyor ve o hata ile bu yuzden karşılaşıyorsun.. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
KODevelopers 438 #25 Konu Sahibi Temmuz 26, 2017 tarihinde gönderildi Alıntı biraz daha inceledim ve burası iptal edilmiş for(int i = 0; i < BORDER_DEFENSE_WAR_EVENT_COUNT; i++) { if (nHour == m_nBorderDefenseWarTime[i] && nMinute == 10 && !pTempleEvent.isActive) { m_nTempleEventRemainSeconds = 0; pTempleEvent.LastEventRoom = 1; pTempleEvent.isActive = true; TempleEventStart(); TempleEventTeleportUsers(); TempleEventSummon(); break; } orası kısımı farklı mı yoksa ? Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş