Jump to content

Zonni

Premium
  • Posts

    165
  • Joined

  • Last visited

  • Days Won

    4
  • Feedback

    0%

Everything posted by Zonni

  1. 2 years ago someone post on epvp tool for change texure link. I think ricky92 was the creator. Try to find it.
  2. Merge packets.h from mainline and novaline. Check out the differences.
  3. You predicted this or what? It's only words without any part of files. MartPwnS, i cant see the point of closing my previous topic. But as you want. I will never talk about this in public. It's your board.
  4. My previous topic was closed ~30 minutes ago and removed. Check logs. This topic is about difference berween WoM files and germany files, no one share any link. ~Zonni Random developer
  5. I know you have WoM server. I seen commentary in files i respect you guys for separate from epvp and create community for devs so I will never send link to download it to anyone. But that just another leak... Just yet another leak. Do you remember leak from January? You can easy find link to it in this forum even in pre-maked to compile game with source. Please, just be fair ok? Can we start talking about this leak? It's not banned in forum rules. I dont want ban, just I'm saying we live in democracy, everyone can talking what just wants..
  6. PACI, isn't written by Nova. It's the same as quest from germany
  7. Hello, i just want to ask - what is WoM revision and SG revision which been released yesterday on ePvP? Another - what is difference between WoM locale and Germany locale? I'm asking about mob positions (for example - germany and korea have different regen boss position in skipia dungeon).
  8. AchievementManager::instance().Initialize();after MessengerManager::instance().Initialize();and AchievementManager achievement_manager;after MessengerManager messenger_manager; Any ideas? Of course when i remove call to function from files everything works fine.
  9. I know i can't do something like std::string = "asd" I forget about initialize this in main. But anyway it doesn't work. achievement_manager.cpp #include "stdafx.h" #include "constants.h" #include "gm.h" #include "achievement_manager.h" #include "buffer_manager.h" #include "desc_client.h" #include "log.h" #include "config.h" #include "p2p.h" #include "crc32.h" #include "char.h" #include "char_manager.h" #include "questmanager.h" AchievementManager::AchievementManager() { } AchievementManager::~AchievementManager() { } void AchievementManager::Initialize() { } void AchievementManager::Destroy() { } void AchievementManager::Login(AchievementManager::keyA player_name) { if(test_server) sys_log(0, "AchievementManager::Login Start "); if (m_set_loginName.find(player_name) != m_set_loginName.end()) { sys_log(0, "AchievementManager::Login 2nd if return "); return; } /* DBManager::instance().FuncQuery(std::bind1st(std::mem_fun(&AchievementManager::LoadList), this), "SELECT name, achievement FROM achievement%s WHERE name='%s'", get_table_postfix(), name.c_str()); */ if(test_server) sys_log(0, "AchievementManager::Login Query "); char szQueryA[1024+1]; snprintf(szQueryA, sizeof(szQueryA), "SELECT name, achievement FROM achievement%s WHERE name='%s'", get_table_postfix(), player_name.c_str()); if(test_server) sys_log(0, "AchievementManager::Login snprintf %s", szQueryA); std::auto_ptr<SQLMsg> msg(DBManager::instance().DirectQuery(szQueryA)); if(test_server) sys_log(0, "AchievementManager::Login DBManager "); if (msg->Get()->uiNumRows == 0) return; std::string namea; sys_log(1, "AchievementManager::LoadList"); for (uint i = 0; i < msg->Get()->uiNumRows; ++i) { MYSQL_ROW row = mysql_fetch_row(msg->Get()->pSQLResult); if (row[0] && row[1]) { if (namea.length() == 0) namea = row[0]; m_Achievements[row[0]].insert(row[1]); } } SendList(namea); std::set<AchievementManager::keyT>::iterator it; m_set_loginName.insert(namea); if(test_server) sys_log(0, "AchievementManager::Login End "); } void AchievementManager::LoadList(SQLMsg * msg) { if(test_server) sys_log(0, "AchievementManager::LoadList Start "); if (NULL == msg) return; if (NULL == msg->Get()) return; if (msg->Get()->uiNumRows == 0) return; std::string name; sys_log(1, "AchievementManager::LoadList"); for (uint i = 0; i < msg->Get()->uiNumRows; ++i) { MYSQL_ROW row = mysql_fetch_row(msg->Get()->pSQLResult); if (row[0] && row[1]) { if (name.length() == 0) name = row[0]; m_Achievements[row[0]].insert(row[1]); } } SendList(name); std::set<AchievementManager::keyT>::iterator it; if(test_server) sys_log(0, "AchievementManager::LoadList End "); } void AchievementManager::SendList(AchievementManager::keyA player_name) { if(test_server) sys_log(0, "AchievementManager::SendList Start "); LPCHARACTER ch = CHARACTER_MANAGER::instance().FindPC(player_name.c_str()); if (!ch) return; LPDESC d = ch->GetDesc(); if (!d) return; if (m_Achievements.find(player_name) == m_Achievements.end()) return; if (m_Achievements[player_name].empty()) return; itertype(m_Achievements[player_name]) it = m_Achievements[player_name].begin(), eit = m_Achievements[player_name].end(); while (it != eit) { ch->ChatPacket(CHAT_TYPE_COMMAND, "setachievement %s", it->c_str()); ++it; } SendGuildRank(); if(test_server) sys_log(0, "AchievementManager::SendList End "); } void AchievementManager::Logout(AchievementManager::keyA player_name) { if(test_server) sys_log(0, "AchievementManager::Logout Start "); if (m_set_loginName.find(player_name) == m_set_loginName.end()) return; m_set_loginName.erase(player_name); std::set<AchievementManager::keyT>::iterator it; std::map<keyT, std::set<keyT> >::iterator it2 = m_Achievements.begin(); while (it2 != m_Achievements.end()) { it2->second.erase(player_name); ++it2; } m_Achievements.erase(player_name); if(test_server) sys_log(0, "AchievementManager::Logout End "); } void AchievementManager::RemoveAllList(keyA player_name) { if(test_server) sys_log(0, "AchievementManager::RemoveAllList Start "); std::set<keyT> company(m_Achievements[player_name]); DBManager::instance().Query("DELETE FROM achievement%s WHERE name='%s'", get_table_postfix(), player_name.c_str()); for (std::set<keyT>::iterator iter = company.begin(); iter != company.end() { company.erase(iter++); } company.clear(); if(test_server) sys_log(0, "AchievementManager::RemoveAllList End "); } void AchievementManager::AddAchievement(AchievementManager::keyA player_name, AchievementManager::keyA id) { if(test_server) sys_log(0, "AchievementManager::AddAchievement Start "); if (id.size() == 0) return; if (m_Achievements[player_name].find(id) != m_Achievements[player_name].end()) return; m_Achievements[player_name].insert(id); LPCHARACTER ch = CHARACTER_MANAGER::instance().FindPC(player_name.c_str()); LPDESC d = ch ? ch->GetDesc() : NULL; if(d) { ch->ChatPacket(CHAT_TYPE_COMMAND, "setachievement %s", id.c_str()); } sys_log(0, "AchievementManager Add %s %s", player_name.c_str(), id.c_str()); DBManager::instance().Query("INSERT INTO achievement%s VALUES ('%s', '%s')", get_table_postfix(), player_name.c_str(), id.c_str()); if(test_server) sys_log(0, "AchievementManager::AddAchievement End "); } void AchievementManager::SendGuildRank() { if(test_server) sys_log(0, "AchievementManager::SendGuildRank Start "); char szQuery[1024+1]; char szBuf[1024+1]; char szNew[1024+1]; char szName[32+1]; int level = 1; int rank_id = 1; snprintf(szQuery, sizeof(szQuery), "SELECT name, level FROM guild%s ORDER BY ladder_point DESC, level DESC, exp DESC LIMIT 10;", get_table_postfix()); std::auto_ptr<SQLMsg> msg(DBManager::instance().DirectQuery(szQuery)); if (msg->Get()->uiNumRows == 0) { return; } MYSQL_ROW row; while ((row = mysql_fetch_row(msg->Get()->pSQLResult))) { if (row[0] && *row[0]) snprintf(szName, 25, "%s", row[0]); if (row[1] && *row[1]) level = strtoul(row[1], NULL, 10); snprintf(szNew, sizeof(szNew), "%d._Lv.%d_%s|", rank_id, level, szName); strcat(szBuf,szNew); ++rank_id; } szBuf[strlen(szBuf) - 1] = '0'; LPCHARACTER ch = CHARACTER_MANAGER::instance().FindPC(szName); LPDESC d = ch ? ch->GetDesc() : NULL; if(d) { ch->ChatPacket(CHAT_TYPE_COMMAND, "setguildrank %s", szBuf); if (test_server) ch->ChatPacket(CHAT_TYPE_INFO, "setguildrank %s", szBuf); } if(test_server) sys_log(0, "AchievementManager::SendGuildRank End "); } achievement_manager.h #ifndef __INC_ACHIEVEMENT_MANAGER_H #define __INC_ACHIEVEMENT_MANAGER_H #include "db.h" class AchievementManager : public singleton<AchievementManager> { public: typedef std::string keyT; typedef const std::string & keyA; AchievementManager(); virtual ~AchievementManager(); public: void Login(keyA player_name); void Logout(keyA player_name); void AddAchievement(keyA player_name, keyA id); void RemoveAllList(keyA player_name); void Initialize(); private: void LoadList(SQLMsg * msg); void SendList(keyA player_name); void SendGuildRank(); void Destroy(); std::set<keyT> m_set_loginName; std::map<keyT, std::set<keyT> > m_Achievements; }; #endif It's very smillar to messenger_manager.
  10. It isn't a solution, at all - i commented this before and function passed to sys_log(0, "Achievement::Login DBManager "); Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 28c04300 (LWP 100122/game)] std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::find (this=0x4, __k=@0xbfbfa06c) at stl_tree.h:493 493 { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); } (gdb) up #1 0x0826230b in Achievement::Login (this=0x0, name=@0xbfbfa06c) at stl_set.h:430 430 { return _M_t.find(__x); } (gdb) up #2 0x08149820 in CInputLogin::Entergame (this=0x2a12c86c, d=0x2a12c800, data=0x2e776000 "n▒etin2client.exe") at input_login.cpp:636 636 Achievement::instance().Login(ch->GetName()); (gdb) down #1 0x0826230b in Achievement::Login (this=0x0, name=@0xbfbfa06c) at stl_set.h:430 430 { return _M_t.find(__x); } (gdb) p name $1 = (const string &) @0xbfbfa06c: {static npos = 4294967295, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x2e775c8c "Zonni"}} (gdb) p __x No symbol "__x" in current context. (gdb) down #0 std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::find (this=0x4, __k=@0xbfbfa06c) at stl_tree.h:493 493 { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); } (gdb) p __k $2 = ( const std::basic_string<char,std::char_traits<char>,std::allocator<char> > &) @0xbfbfa06c: {static npos = 4294967295, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x2e775c8c "Zonni"}} (gdb) down Bottom (i.e., innermost) frame selected; you cannot go down. (gdb) Gdb result. As i said - it's find function error and seriously i don't know how to pass that ... my include files: #include "stdafx.h" #include "constants.h" #include "gm.h" #include "achievement.h" #include "buffer_manager.h" #include "desc_client.h" #include "log.h" #include "config.h" #include "p2p.h" #include "crc32.h" #include "char.h" #include "char_manager.h" #include "questmanager.h" and my header... #ifndef __INC_ACHIEVEMENT_H #define __INC_ACHIEVEMENT_H #include "db.h" class Achievement : public singleton<Achievement> { public: typedef std::string keyT; typedef const std::string & keyA; Achievement(); virtual ~Achievement(); public: void Initialize(); void Login(keyA name); void Logout(keyA name); void AddAchievement(keyA name, keyA id); void RemoveAllList(keyA name); private: void LoadList(SQLMsg * msg); void SendList(keyA name); void SendGuildRank(); void Destroy(); std::set<keyT> m_set_loginName; std::map<keyT, std::set<keyT> > m_Achievements; // 1st is name, 2nd is value of earned achievement }; #endif I think i have std related type error because when i set std::string = "asd"; at beggining of login server crashes too.
  11. Hello everyone. I have this function. void Achievement::Login(Achievement::keyA name) { if(test_server) sys_log(0, "Achievement::Login Start "); if (m_set_loginName.find(name) != m_set_loginName.end()) { sys_log(0, "Achievement::Login 2nd if return "); return; } /* DBManager::instance().FuncQuery(std::bind1st(std::mem_fun(&Achievement::LoadList), this), "SELECT name, achievement FROM achievement%s WHERE name='%s'", get_table_postfix(), name.c_str()); */ if(test_server) sys_log(0, "Achievement::Login Query "); char szQueryA[1024+1]; snprintf(szQueryA, sizeof(szQueryA), "SELECT name, achievement FROM achievement%s WHERE name='%s'", get_table_postfix(), name.c_str()); if(test_server) sys_log(0, "Achievement::Login snprintf %s", szQueryA); std::auto_ptr<SQLMsg> msg(DBManager::instance().DirectQuery(szQueryA)); if(test_server) sys_log(0, "Achievement::Login DBManager "); if (msg->Get()->uiNumRows == 0) return; std::string namea; sys_log(1, "Achievement::LoadList"); for (uint i = 0; i < msg->Get()->uiNumRows; ++i) { MYSQL_ROW row = mysql_fetch_row(msg->Get()->pSQLResult); if (row[0] && row[1]) { if (namea.length() == 0) namea = row[0]; m_Achievements[row[0]].insert(row[1]); } } SendList(namea); std::set<Achievement::keyT>::iterator it; m_set_loginName.insert(namea); if(test_server) sys_log(0, "Achievement::Login End "); } When i call it from CInputLogin::Entergame like this: Achievement::instance().Login(ch->GetName()); my channel crash. Someone know what's error? My syslog says only Achievement::Login Start but compiler doesn't snow any error. I think error it's in if (m_set_loginAccount.find(name) != m_set_loginAccount.end())but this if is right, used for example in messenger_manager.cpp Maybe i must extend character buffer or something (where i can find it btw.)? Seriously i don't know. I tried a lot.
  12. You can do it by using old way using pc.select in quest. You can't modify your core.
  13. Somone have valid property files to edit bullit-in maps (ex. metin2_map_a1, metin2_map_c1 etc.)? I can't find it in my clients.
  14. Capitan America: Winter Solider :3 Nice movie, awesome effects ;D
  15. Hook function CHARACTER::UseItemEx and make nessesary changes. Sorry, i know that way only and I can't give you better explanation for make this.
  16. Zonni

    Phoenix Pet

    Thanks! You have awesome building
  17. Try to run sequence patcher and apply to your client & server. Honestly, i was look for this errror message in 40k sf source and i cant find it.
  18. Oww, i know that! <3 But let be serious. Syslog isn't really big and sometimes syserr isn't enough to figure out bugs. If you really don't need syslog do what Dennis told you, I recommend to use another way: find in config.cpp log_set_expiration_days(2);and replace it by log_set_expiration_days(1);As I remember server with 2500 players online generate ~1GB logs per hour (1 pm - 10 pm) and as I said - syslog can be usefull in some cases.
  19. OOoh, it's quite easy. Navigate to your source directory & type in console: rm -rf * This solve all problem especially ours because if I tell you way you probably ask on forum how to do that again. For you is better to use precompiled binary. If you cant figure out by yourself this easy mod you shouldn't use source, if you can - you can find way how to do that in forum.
  20. Sorry, logic fail. You're using python22 right?
  21. line 3121 long long q = long long(next_exp / 4.0f); to long long q = next_exp / 4; or if really want to divide by float... long long q = next_exp / 4.0f; man, study some c++ book fisrt, after that edit source.
  22. You checked packets? These bug doesn't exist in original source.
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.