Jump to content
Araştır
  • Diğer seçenekler ...
Sonuçları bul ...
Sonuçları bul ...

KODevelopers

Forum Sahibi
  • İçerik sayısı

    1.458
  • Katılım

  • Son ziyaret

  • Günün Kazananı

    12
  • Puan

    2,509 [ Bağış Yap ]

KODevelopers kullanıcısının paylaşımları

  1. KODevelopers

    Krovaz Kırdırma Sorunu

    ITEM_EXCHANGE tabloda bakın.. veya ıtem_mıx varsa yada yok diyorsa ITEM_EXCHANGE kontrol et. @ enaz0369
  2. Hoşama gitti valla ne güzel
  3. KODevelopers

    19xx+ görev sorunu

    @ OCB Skype ekle [email protected]
  4. Teşekkür ederim bi bakam deneyim..
  5. KODevelopers

    19xx+ görev sorunu

    Npchandler ve npc.cpp de bölümü bakın ama void fala hatırlamıyorum eve gidince yazarım akşama..
  6. @ EveryBodyFool Bakdım İşaretli veriyorum.. Mavi boyadım oraya kadar geliyor.. void CAISocket::RecvNpcAttack(Packet & pkt) { CNpc * pAttacker; Unit * pTarget; uint16 sAttackerID, sTargetID; int16 sDamage; uint8 bResult = ATTACK_FAIL; pkt >> sAttackerID >> sTargetID; pAttacker = g_pMain->GetNpcPtr(sAttackerID); pTarget = g_pMain->GetUnitPtr(sTargetID); if (pAttacker == nullptr || pAttacker->isPlayer() || pTarget == nullptr || pAttacker->isDead() || pTarget->isDead() || TO_USER(pTarget)->isTransformed() || (TO_USER(pTarget)->isTransformed() && TO_NPC(pAttacker)->GetDamage(TO_USER(pTarget)) != 1)) return; if (pAttacker->GetEventRoom() != pTarget->GetEventRoom()) return; // TODO: Wrap this up into its own virtual method sDamage = pAttacker->GetDamage(pTarget); if (sDamage > 0) { pTarget->HpChange(-(sDamage), pAttacker); if (pTarget->isDead()) bResult = ATTACK_TARGET_DEAD; else bResult = ATTACK_SUCCESS; // Every hit takes a little of the defender's armour durability. if (pTarget->isPlayer()) TO_USER(pTarget)->ItemWoreOut(DEFENCE, sDamage); } Packet result(WIZ_ATTACK, uint8(LONG_ATTACK)); result << bResult << sAttackerID << sTargetID; pAttacker->SendToRegion(&result); }
  7. @ Anyone Teşekkür ederim Deniyorum..
  8. @ EveryBodyFool @ Nero @ Dawn Yardımcı olabilir misin yada yardım etmicekse sorun yok. Gene de teşekkür ederim.
  9. 30 35 dk falan sürünce. saniye saniye GameServer patlıyor neden kaynaklıyor.. void CAISocket::RecvNpcAttack(Packet & pkt) { CNpc * pAttacker; Unit * pTarget; uint16 sAttackerID, sTargetID; int16 sDamage; uint8 bResult = ATTACK_FAIL; pkt >> sAttackerID >> sTargetID; pAttacker = g_pMain->GetNpcPtr(sAttackerID); pTarget = g_pMain->GetUnitPtr(sTargetID); if (pAttacker == nullptr || pAttacker->isPlayer() || pTarget == nullptr || pAttacker->isDead() || pTarget->isDead() || TO_USER(pTarget)->isTransformed() || (TO_USER(pTarget)->isTransformed() && TO_NPC(pAttacker)->GetDamage(TO_USER(pTarget)) != 1)) return; if (pAttacker->GetEventRoom() != pTarget->GetEventRoom()) return; // TODO: Wrap this up into its own virtual method sDamage = pAttacker->GetDamage(pTarget); if (sDamage > 0) { pTarget->HpChange(-(sDamage), pAttacker); if (pTarget->isDead()) bResult = ATTACK_TARGET_DEAD; else bResult = ATTACK_SUCCESS; // Every hit takes a little of the defender's armour durability. if (pTarget->isPlayer()) TO_USER(pTarget)->ItemWoreOut(DEFENCE, sDamage); } Packet result(WIZ_ATTACK, uint8(LONG_ATTACK)); result << bResult << sAttackerID << sTargetID; pAttacker->SendToRegion(&result); }
  10. KODevelopers

    SexyKO Server Files Hatası

    Konuyu çözüldü..
  11. KODevelopers

    SexyKO Server Files Hatası

    @ enaz0369 tw yollar mısın..
  12. KODevelopers

    SexyKO Server Files Hatası

    Boşuna ugraşma uzun uzun yaşıcaksın bence 🙂 void KnightLogger::Startup() { s_thread = new Thread(ThreadProc, (void *)1); //s_thread->detach(); // dont make wait other threads for us. We are 100% independent. } Böyle yap düzelir.
  13. Teşekkür ederim ozkan abi..
  14. @ xterme Files exe'nin şifrele gerekiyor mb düşerebilirsin. exe ipsi hex bulabilir :) Exe taramıştır.. OnlineLetterALLSend.exe https://www.virustotal.com/en/file/64caa981e747fcbfe4d3e2901ec56a95629f214799c8df26e9c63ab447280e10/analysis/1501338671/ AIServer.exe https://www.virustotal.com/en/file/323c9bc89d5b4d7818976a89a6174059d8208bf62375ff5418a0b588b17e2fdb/analysis/1501338672/ LogInServer.exe https://www.virustotal.com/en/file/fe3b0b19c04ab8471b87216a4341b37f2a52d986da838dc81c6a6dd40a9e4009/analysis/1501338680/ GameServer.exe https://www.virustotal.com/en/file/efa64e2983779b3faec2071dcd4c709253df19218659409091c252adcf68e581/analysis/1501338692/ Acs Options.exe https://www.virustotal.com/en/file/3d214921a227ec5bf2d8a100a50498801b9f6e652302dee214bd2fe0077215ec/analysis/1501338957/ XCodeUserConsole.exe https://www.virustotal.com/en/file/1ee5925c3553fae54fd9b9e659362caa780e56660630d07515996919084c4c2a/analysis/1501338954/ XCodeDatabaseConsole.exe https://www.virustotal.com/en/file/d538fc99c2aa82ee2b75291f39993ae3ab4383d02692c8a4b1cf64608962b753/analysis/1501338954/ Panel https://www.virustotal.com/en/file/a6b891fa7d44ae770c6d2f4e0c1abfac48bda43834ba3bbcfa807cf9fe660875/analysis/1501339022/ acs da virüslü ancak bilgim yok. @ xterme @ hiCenglyy
  15. KODevelopers

    21xx PREMIUM Sistemin

    @ Dawn evet sql verdigimi yanlış mı ? ALTER PROCEDURE [dbo].[LOAD_PREMIUM_SERVICE_USER] @strAccountID char(20), @strPremium int, @bType tinyint OUTPUT AS DECLARE @bPremiumInUse tinyint -- Get the current premium expire time and current premium type. SELECT @bPremiumInUse = bPremiumType FROM TB_USER WHERE strAccountID = @strAccountID SET @bType = @bPremiumInUse -- Check if the last premium expire date is null/empty or -- the hours between now and the last premium expire date is below or equal to 0 BEGIN SET @bType = 0 END ALTER PROCEDURE [dbo].[SAVE_PREMIUM_SERVICE_USER] @strAccountID char(20), @strCharID char(20), @bTypes tinyint, @sInUse smallint AS DECLARE @dtExpiry datetime SET @dtExpiry = DATEADD(HH, @sInUse, GETDATE()) UPDATE TB_USER SET bPremiumType = @bTypes, dtPremiumTime = @dtExpiry, sHours = @sInUse WHERE strAccountID = @strAccountID
  16. KODevelopers

    21xx PREMIUM Sistemin

    ALTER PROCEDURE den yapıyordum ancak uyumuyor. ALTER PROCEDURE [dbo].[LOAD_PREMIUM_SERVICE_USER] @strAccountID char(20), @strPremium int, @bTypes tinyint OUTPUT AS DECLARE @bPremiumInUse tinyint -- Get the current premium expire time and current premium type. SELECT @bPremiumInUse = bPremiumType FROM TB_USER WHERE strAccountID = @strAccountID SET @bTypes = @bPremiumInUse -- Check if the last premium expire date is null/empty or -- the hours between now and the last premium expire date is below or equal to 0 BEGIN SET @bTypes = 0 END ALTER PROCEDURE [dbo].[SAVE_PREMIUM_SERVICE_USER] @strAccountID char(20), @strCharID char(20), @bType tinyint, @sTime smallint AS DECLARE @dtExpiry datetime SET @dtExpiry = DATEADD(HH, @sTime, GETDATE()) UPDATE TB_USER SET bPremiumType = @bType, dtPremiumTime = @dtExpiry, sHours = @sTime WHERE strAccountID = @strAccountID benim yaptıkları yanlış mı acaba. Log hatası veriyor da [ ODBC Error - 29.7.2017 1:28:16 ] ] Source: {CALL LOAD_PREMIUM_SERVICE_USER(?)} Error: [Microsoft][SQL Server Native Client 11.0][SQL Server]Procedure or function 'LOAD_PREMIUM_SERVICE_USER' expects parameter '@bType', which was not supplied. Description: Failed to execute statement. [ ODBC Error - 29.7.2017 1:28:19 ] ] Source: {? = CALL SAVE_PREMIUM_SERVICE_USER(?, ?, 0, 205, 0)} Error: [Microsoft][SQL Server Native Client 11.0][SQL Server]Procedure or function SAVE_PREMIUM_SERVICE_USER has too many arguments specified. Description: Failed to execute statement. @ EveryBodyFool
  17. Merhaba.. Sql 2014 Procedure den çeviremedim. ancak yapamadım. LOAD_PREMIUM_SERVICE_USER bool CDBAgent::LoadPremiumServiceUser(string & strAccountID, CUser *pUser) { if (pUser == nullptr) return false; unique_ptr dbCommand(m_AccountDB->CreateCommand()); if (dbCommand.get() == nullptr) return false; dbCommand->AddParameter(SQL_PARAM_INPUT, strAccountID.c_str(), strAccountID.length()); if (!dbCommand->Execute(_T("{CALL LOAD_PREMIUM_SERVICE_USER(?)}"))) { ReportSQLError(m_AccountDB->GetError()); return false; } if (!dbCommand->hasData()) return false; char strPremium[30]; memset(strPremium, 0, sizeof(strPremium)); uint8 bPremiumCount = 0; dbCommand->FetchByte(1, pUser->m_bPremiumInUse); dbCommand->FetchByte(2, bPremiumCount); dbCommand->FetchBinary(3, strPremium, sizeof(strPremium)); for (int i = 0, index = 0; i < bPremiumCount; i++, index += 5) { uint8 bPremiumType = *(uint8*)(strPremium + index); uint32 iPremiumTime = *(uint32*)(strPremium + index + 1); if (iPremiumTime < UNIXTIME) continue; _PREMIUM_DATA *pPremium = new _PREMIUM_DATA; pPremium->bPremiumType = bPremiumType; pPremium->iPremiumTime = iPremiumTime; if (!pUser->m_PremiumMap.PutData(bPremiumType, pPremium)) delete pPremium; } if (pUser->m_PremiumMap.GetSize() == 0) { _PREMIUM_DATA *pPremium = new _PREMIUM_DATA; pPremium->bPremiumType = PremiumTypes::Dummy_Premium; pPremium->iPremiumTime = uint32(UNIXTIME) + 24 * 60 * 60 * 2; if (!pUser->m_PremiumMap.PutData(pPremium->bPremiumType, pPremium)) delete pPremium; else pUser->m_bPremiumInUse = PremiumTypes::Dummy_Premium; } else { if (pUser->m_PremiumMap.GetData(pUser->m_bPremiumInUse) == nullptr) { pUser->m_bPremiumInUse = NO_PREMIUM; foreach_stlmap(itr, pUser->m_PremiumMap) { _PREMIUM_DATA * uPrem = itr->second; if (uPrem == nullptr || uPrem->iPremiumTime == 0) continue; pUser->m_bPremiumInUse = uPrem->bPremiumType; break; } } } // this is hardcoded because we don't really care about the other mode if (pUser->m_bPremiumInUse != NO_PREMIUM) pUser->m_bAccountStatus = 1; // normal premium with expiry time else pUser->m_bAccountStatus = 0; return true; } SAVE_PREMIUM_SERVICE_USER bool CDBAgent::SavePremiumServiceUser(CUser *pUser) { if (pUser == nullptr) return false; unique_ptr dbCommand(m_AccountDB->CreateCommand()); if (dbCommand.get() == nullptr) return false; int8 bRet = -2; // generic error char strPremium[30]; int index = 0; memset(strPremium, 0, sizeof(strPremium)); int counter = 0; uint32 time = 0; foreach_stlmap(itr, pUser->m_PremiumMap) { if (itr->second == nullptr || itr->second->iPremiumTime < UNIXTIME || itr->second->bPremiumType == PremiumTypes::Dummy_Premium) continue; if (time < itr->second->iPremiumTime) time = itr->second->iPremiumTime; *(uint8 *)(strPremium + index) = itr->first; *(uint32 *)(strPremium + 1 + index) = itr->second->iPremiumTime; index += 5; counter++; } if (time > uint32(UNIXTIME)) time = uint32(time - UNIXTIME); // total premium seconds left dbCommand->AddParameter(SQL_PARAM_OUTPUT, &bRet); dbCommand->AddParameter(SQL_PARAM_INPUT, pUser->GetAccountName().c_str(), pUser->GetAccountName().length()); dbCommand->AddParameter(SQL_PARAM_INPUT, (char *)strPremium, sizeof(strPremium), SQL_BINARY); if (!dbCommand->Execute(string_format(_T("{? = CALL SAVE_PREMIUM_SERVICE_USER(?, ?, %d, %d, %d)}"), counter, pUser->m_bPremiumInUse == PremiumTypes::Dummy_Premium ? 0 : pUser->m_bPremiumInUse, time))) ReportSQLError(m_AccountDB->GetError()); return true; }
  18. Yarın atarsa bakalım oke
×
×
  • Yeni Oluştur...