-
Activity
-
22
Green & Purple Potions Effect
Someone linked me this old topic, and I figured out I never noticed those sounds played twice. This is my fix: (PythonNetworkStreamPhaseGameItem.cpp) There's no need to play those sounds. Alternatively (based on penger's but via apply check): (but it's not of my taste) (PythonItem.cpp) case CItemData::USE_ABILITY_UP: if (c_rkItemData.GetValue(0) == CItemData::APPLY_MOV_SPEED || c_rkItemData.GetValue(0) == CItemData::APPLY_ATT_SPEED) return USESOUND_NONE; -
12
-
12
When Uninstalling Gaya System
You must delete from player.MYD navicat in player.player player.player and check and account.account -
12
When Uninstalling Gaya System
#ifndef __INC_METIN2_COMMON_DEFINES_H__ #define __INC_METIN2_COMMON_DEFINES_H__ enum eCommonDefines { MAP_ALLOW_LIMIT = 64, // 32 default }; #define ENABLE_PLAYER_PER_ACCOUNT5 #define ENABLE_PORT_SECURITY #define __WJ_SHOW_MOB_INFO__ #define __SEND_TARGET_INFO__ #define __SPECIAL_STORAGE__ #define __7AND8TH_SKILLS__ #define __TITLE_SYSTEM__ #define __TIMER_ELIXIR__ #define __SASH_SYSTEM__ #define __MULTI_SHOP__ #define __CHANGE_SEX_WR__ #define __REFINE_SYSTEM__ #define __CHANGELOOK_SYSTEM__ #define __CHANGELOOK_EXTEND__ #define __EXTENDED_ITEM_NAME__ #define __EXPANDED_BOOK_NAME__ #define __WEAPON_COSTUME_SYSTEM__ #define __COSTUME_ATTR_SYSTEM__ #define __COSTUME_RING_SYSTEM__ #define __SEQUENCE_SYSTEM__ #define __SHOW_CHEST_DROP__ #define __ATTENDANCE_EVENT__ #define __ENABLE_BATTLE_FIELD__ #define __VIEW_TARGET_PLAYER_HP__ #define __VIEW_TARGET_DECIMAL_HP__ #ifndef ENABLE_ANNOUNCEMENT_REFINE_SUCCES #define ENABLE_ANNOUNCEMENT_REFINE_SUCCES #define ENABLE_ANNOUNCEMENT_REFINE_SUCCES_MIN_LEVEL 9 #endif #define ENABLE_NEW_QUICK_SLOT_SYSTEM #define WJ_ENABLE_PICKUP_ITEM_EFFECT #define WJ_ENABLE_TRADABLE_ICON #define ENABLE_CHANGE_CHANNEL #define ENABLE_ANTIEXP_RENEWAL #define ENABLE_SORT_INVENTORY #define ENABLE_CUBE_RENEWAL #define ENABLE_DICE_SYSTEM #define ENABLE_GLOBAL_CHAT #define ENABLE_FISH_EVENT #define ENABLE_NEWSTUFF #define ENABLE_PET_SLOT #define NEW_PET_SYSTEM #define NEW_PET_SUMMON #define ENABLE_MOUNT_COSTUME_SYSTEM #define ENABLE_SUPPORT_SYSTEM #define ENABLE_AGGREGATE_MONSTER_EFFECT #define ENABLE_FAST_SKILL_CHOOSE /* SYSTEME PENTRU ADMINISTRARE*/ #define __WHISPER_ADMIN__ #define __ADMIN_MANAGER__ /* OFFLINE SHOPS */ #define OFFLINE_SHOP // Offline shops system #define GIFT_SYSTEM // gift system enable #define FULL_YANG // Enable support for yang type long long #define SHOP_TIME_REFRESH 1*60 // time for cycle checking older shops #define SHOP_BLOCK_GAME99 //Blocking create shops on channel 99 //#define SHOP_DISTANCE // Show shops in pos distance like WoM2 #define SHOP_AUTO_CLOSE //Enable auto closing shop after sell last item //#define SHOP_ONLY_ALLOWED_INDEX //Enable limiting for other map index which is not defined in player.shop_limit //#define SHOP_HIDE_NAME // Enable hidding shop npc names like "Player's shop" #define SHOP_GM_PRIVILEGES GM_IMPLEMENTOR //Minimum GM privileges to using Shop GM Panel #define ENABLE_OFFLINE_SHOP_HIDE #define SHOP_SEARCH #define SHOP_SEARCH_PRICE_MIN //Price in gui is a minimum eq. price >= item_price if is commented price in gui is a maximum /* END OFFLINE SHOPS */ /* SYSTEME TEMNITE */ #define __VERSION_162__ #ifdef __VERSION_162__ #define HEALING_SKILL_VNUM 265 #endif #define __DUNGEON_FOR_GUILD__ #ifdef __DUNGEON_FOR_GUILD__ #define __MELEY_LAIR_DUNGEON__ #ifdef __MELEY_LAIR_DUNGEON__ #define __DESTROY_INFINITE_STATUES_GM__ #define __LASER_EFFECT_ON_75HP__ #define __LASER_EFFECT_ON_50HP__ #endif #endif /* END SYSTEME TEMNITE */ // #define ENABLE_GEM_SYSTEM // #define __SKILLS_LEVEL_OVER_P__ // #define WJ_GUILD_LEADER_SYSTEM #endif It's already deactivated. I've enclosed all gems that don't have #if def in #if def. There were 95 gayas in one account, I'll try to delete it and deactivate it again. -
12
When Uninstalling Gaya System
Open notepad++ search for gaya and that it is not in #ifdef can removed Also see the player.MYD if you have gaya and delete for 100% solve @LethalStrikeR Download gaya system and check up and removed -
12
When Uninstalling Gaya System
Unfortunately it still gave the same error. SYSERR: Jan 29 21:03:31 :: DirectQuery: AsyncSQL::DirectQuery : mysql_query error: Column count doesn't match value count at row 1 query: INSERT INTO player (id, account_id, name, level, st, ht, dx, iq, job, voice, dir, x, y, z, hp, mp, random_hp, random_sp, stat_point, stamina, part_base, part_main, part_hair, part_sash, gold, battle_points, playtime, skill_level, fish_slots, quickslot) VALUES(0, 1, '12312323', 1, 6, 4, 3, 3, 0, 0, 0, 957317, 255360, 0, 760, 260, 0, 0, 0, 800, 0, 0, 0, 0, 0, 0, 0, 0, 681656320, 0, '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 SYSERR: Jan 29 21:03:31 :: __QUERY_PLAYER_CREATE: QUERY_ERROR: UPDATE player_index SET pid4=0 WHERE id=1 -
12
When Uninstalling Gaya System
void CClientManager::__QUERY_PLAYER_CREATE(CPeer *peer, DWORD dwHandle, TPlayerCreatePacket* packet) { char queryStr[QUERY_MAX_LEN]; int queryLen; int player_id; // ? ??? X? ?? ??? ??? ? ? ??. time_by_id_map_t::iterator it = s_createTimeByAccountID.find(packet->account_id); if (it != s_createTimeByAccountID.end()) { time_t curtime = time(0); if (curtime - it->second < 30) { peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_FAILED, dwHandle, 0); return; } } queryLen = snprintf(queryStr, sizeof(queryStr), "SELECT pid%u FROM player_index%s WHERE id=%d", packet->account_index + 1, GetTablePostfix(), packet->account_id); std::unique_ptr<SQLMsg> pMsg0(CDBManager::instance().DirectQuery(queryStr)); if (pMsg0->Get()->uiNumRows != 0) { if (!pMsg0->Get()->pSQLResult) { peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_FAILED, dwHandle, 0); return; } MYSQL_ROW row = mysql_fetch_row(pMsg0->Get()->pSQLResult); DWORD dwPID = 0; str_to_number(dwPID, row[0]); if (row[0] && dwPID > 0) { peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_ALREADY, dwHandle, 0); sys_log(0, "ALREADY EXIST AccountChrIdx %d ID %d", packet->account_index, dwPID); return; } } else { peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_FAILED, dwHandle, 0); return; } if (g_stLocale == "sjis") snprintf(queryStr, sizeof(queryStr), "SELECT COUNT(*) as count FROM player%s WHERE name='%s' collate sjis_japanese_ci", GetTablePostfix(), packet->player_table.name); else snprintf(queryStr, sizeof(queryStr), "SELECT COUNT(*) as count FROM player%s WHERE name='%s'", GetTablePostfix(), packet->player_table.name); std::unique_ptr<SQLMsg> pMsg1(CDBManager::instance().DirectQuery(queryStr)); if (pMsg1->Get()->uiNumRows) { if (!pMsg1->Get()->pSQLResult) { peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_FAILED, dwHandle, 0); return; } MYSQL_ROW row = mysql_fetch_row(pMsg1->Get()->pSQLResult); if (*row[0] != '0') { sys_log(0, "ALREADY EXIST name %s, row[0] %s query %s", packet->player_table.name, row[0], queryStr); peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_ALREADY, dwHandle, 0); return; } } else { peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_FAILED, dwHandle, 0); return; } queryLen = snprintf(queryStr, sizeof(queryStr), "INSERT INTO player%s " "(id, account_id, name, level, st, ht, dx, iq, " "job, voice, dir, x, y, z, " "hp, mp, random_hp, random_sp, stat_point, stamina, part_base, " "part_main, part_hair, part_sash, gold, " #ifdef __ENABLE_BATTLE_FIELD__ "battle_points, " #endif "playtime, skill_level, " #ifdef ENABLE_FISH_EVENT "fish_slots, " #endif "quickslot) " "VALUES(0, %u, '%s', %d, %d, %d, %d, %d, " // id, account_id, name, level, st, ht, dx, iq, "%d, %d, %d, %d, %d, %d, " // job, voice, dir, x, y, z, "%d, %d, %d, %d, %d, %d, %d, " // hp, mp, random_hp, random_sp, stat_point, stamina, part_base, "0, 0, 0, %lld, " // part_main, part_hair, part_sash, gold, #ifdef __ENABLE_BATTLE_FIELD__ "%d, " #endif "0, " "%d, " #ifdef ENABLE_FISH_EVENT "%d, " #endif "0, ", GetTablePostfix(), packet->account_id, packet->player_table.name, packet->player_table.level, packet->player_table.st, packet->player_table.ht, packet->player_table.dx, packet->player_table.iq, packet->player_table.job, packet->player_table.voice, packet->player_table.dir, packet->player_table.x, packet->player_table.y, packet->player_table.z, packet->player_table.hp, packet->player_table.sp, packet->player_table.sRandomHP, packet->player_table.sRandomSP, packet->player_table.stat_point, packet->player_table.stamina, packet->player_table.part_base, packet->player_table.part_base, packet->player_table.gold #ifdef __ENABLE_BATTLE_FIELD__ ,packet->player_table.battlePoint #endif ); sys_log(0, "PlayerCreate accountid %d name %s level %d gold %lld, st %d ht %d job %d", packet->account_id, packet->player_table.name, packet->player_table.level, packet->player_table.gold, packet->player_table.st, packet->player_table.ht, packet->player_table.job); static char text[4096 + 1]; CDBManager::instance().EscapeString(text, packet->player_table.skills, sizeof(packet->player_table.skills)); queryLen += snprintf(queryStr + queryLen, sizeof(queryStr) - queryLen, "'%s', ", text); if (g_test_server) sys_log(0, "Create_Player queryLen[%d] TEXT[%s]", queryLen, text); CDBManager::instance().EscapeString(text, packet->player_table.quickslot, sizeof(packet->player_table.quickslot)); queryLen += snprintf(queryStr + queryLen, sizeof(queryStr) - queryLen, "'%s')", text); std::unique_ptr<SQLMsg> pMsg2(CDBManager::instance().DirectQuery(queryStr)); if (g_test_server) sys_log(0, "Create_Player queryLen[%d] TEXT[%s]", queryLen, text); if (pMsg2->Get()->uiAffectedRows <= 0) { peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_ALREADY, dwHandle, 0); sys_log(0, "ALREADY EXIST3 query: %s AffectedRows %lu", queryStr, pMsg2->Get()->uiAffectedRows); return; } player_id = pMsg2->Get()->uiInsertID; snprintf(queryStr, sizeof(queryStr), "UPDATE player_index%s SET pid%d=%d WHERE id=%d", GetTablePostfix(), packet->account_index + 1, player_id, packet->account_id); std::unique_ptr<SQLMsg> pMsg3(CDBManager::instance().DirectQuery(queryStr)); if (pMsg3->Get()->uiAffectedRows <= 0) { sys_err("QUERY_ERROR: %s", queryStr); snprintf(queryStr, sizeof(queryStr), "DELETE FROM player%s WHERE id=%d", GetTablePostfix(), player_id); CDBManager::instance().DirectQuery(queryStr); peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_FAILED, dwHandle, 0); return; } TPacketDGCreateSuccess pack; memset(&pack, 0, sizeof(pack)); pack.bAccountCharacterIndex = packet->account_index; pack.player.dwID = player_id; strlcpy(pack.player.szName, packet->player_table.name, sizeof(pack.player.szName)); pack.player.byJob = packet->player_table.job; pack.player.byLevel = 1; pack.player.dwPlayMinutes = 0; pack.player.byST = packet->player_table.st; pack.player.byHT = packet->player_table.ht; pack.player.byDX = packet->player_table.dx; pack.player.byIQ = packet->player_table.iq; pack.player.wMainPart = packet->player_table.part_base; pack.player.x = packet->player_table.x; pack.player.y = packet->player_table.y; peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_SUCCESS, dwHandle, sizeof(TPacketDGCreateSuccess)); peer->Encode(&pack, sizeof(TPacketDGCreateSuccess)); sys_log(0, "7 name %s job %d", pack.player.szName, pack.player.byJob); s_createTimeByAccountID[packet->account_id] = time(0); } solver @LethalStrikeR -
12
When Uninstalling Gaya System
ClientManagerPlayer.cpp: In member function 'void CClientManager::__QUERY_PLAYER_CREATE(CPeer*, DWORD, TPlayerCreatePacket*)': ClientManagerPlayer.cpp:1025:4: error: expected ')' before 'GetTablePostfix' GetTablePostfix(), ^ compiling ItemIDRangeManager.cpp compiling ClientManagerHorseName.cpp gmake: *** [Makefile:69: .obj/ClientManagerPlayer.o] Error 1 gmake: *** Waiting for unfinished jobs.... [email protected]:/usr/vlad/Files/db/src # -
12
When Uninstalling Gaya System
void CClientManager::__QUERY_PLAYER_CREATE(CPeer *peer, DWORD dwHandle, TPlayerCreatePacket* packet) { char queryStr[QUERY_MAX_LEN]; int queryLen; int player_id; // ? ??? X? ?? ??? ??? ? ? ??. time_by_id_map_t::iterator it = s_createTimeByAccountID.find(packet->account_id); if (it != s_createTimeByAccountID.end()) { time_t curtime = time(0); if (curtime - it->second < 30) { peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_FAILED, dwHandle, 0); return; } } queryLen = snprintf(queryStr, sizeof(queryStr), "SELECT pid%u FROM player_index%s WHERE id=%d", packet->account_index + 1, GetTablePostfix(), packet->account_id); std::unique_ptr<SQLMsg> pMsg0(CDBManager::instance().DirectQuery(queryStr)); if (pMsg0->Get()->uiNumRows != 0) { if (!pMsg0->Get()->pSQLResult) { peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_FAILED, dwHandle, 0); return; } MYSQL_ROW row = mysql_fetch_row(pMsg0->Get()->pSQLResult); DWORD dwPID = 0; str_to_number(dwPID, row[0]); if (row[0] && dwPID > 0) { peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_ALREADY, dwHandle, 0); sys_log(0, "ALREADY EXIST AccountChrIdx %d ID %d", packet->account_index, dwPID); return; } } else { peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_FAILED, dwHandle, 0); return; } if (g_stLocale == "sjis") snprintf(queryStr, sizeof(queryStr), "SELECT COUNT(*) as count FROM player%s WHERE name='%s' collate sjis_japanese_ci", GetTablePostfix(), packet->player_table.name); else snprintf(queryStr, sizeof(queryStr), "SELECT COUNT(*) as count FROM player%s WHERE name='%s'", GetTablePostfix(), packet->player_table.name); std::unique_ptr<SQLMsg> pMsg1(CDBManager::instance().DirectQuery(queryStr)); if (pMsg1->Get()->uiNumRows) { if (!pMsg1->Get()->pSQLResult) { peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_FAILED, dwHandle, 0); return; } MYSQL_ROW row = mysql_fetch_row(pMsg1->Get()->pSQLResult); if (*row[0] != '0') { sys_log(0, "ALREADY EXIST name %s, row[0] %s query %s", packet->player_table.name, row[0], queryStr); peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_ALREADY, dwHandle, 0); return; } } else { peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_FAILED, dwHandle, 0); return; } queryLen = snprintf(queryStr, sizeof(queryStr), "INSERT INTO player%s " "(id, account_id, name, level, st, ht, dx, iq, " "job, voice, dir, x, y, z, " "hp, mp, random_hp, random_sp, stat_point, stamina, part_base, " "part_main, part_hair, part_sash, gold, " #ifdef __ENABLE_BATTLE_FIELD__ "battle_points, " #endif "playtime, skill_level, " #ifdef ENABLE_FISH_EVENT "fish_slots, " #endif "quickslot) " "VALUES(0, %u, '%s', %d, %d, %d, %d, %d, " // id, account_id, name, level, st, ht, dx, iq, "%d, %d, %d, %d, %d, %d, " // job, voice, dir, x, y, z, "%d, %d, %d, %d, %d, %d, %d, " // hp, mp, random_hp, random_sp, stat_point, stamina, part_base, "0, 0, 0, %lld, " // part_main, part_hair, part_sash, gold, #ifdef __ENABLE_BATTLE_FIELD__ "%d, " #endif "0, " "%d, " #ifdef ENABLE_FISH_EVENT "%d, " #endif "0, " GetTablePostfix(), packet->account_id, packet->player_table.name, packet->player_table.level, packet->player_table.st, packet->player_table.ht, packet->player_table.dx, packet->player_table.iq, packet->player_table.job, packet->player_table.voice, packet->player_table.dir, packet->player_table.x, packet->player_table.y, packet->player_table.z, packet->player_table.hp, packet->player_table.sp, packet->player_table.sRandomHP, packet->player_table.sRandomSP, packet->player_table.stat_point, packet->player_table.stamina, packet->player_table.part_base, packet->player_table.part_base, packet->player_table.gold #ifdef __ENABLE_BATTLE_FIELD__ ,packet->player_table.battlePoint #endif ); sys_log(0, "PlayerCreate accountid %d name %s level %d gold %lld, st %d ht %d job %d", packet->account_id, packet->player_table.name, packet->player_table.level, packet->player_table.gold, packet->player_table.st, packet->player_table.ht, packet->player_table.job); static char text[4096 + 1]; CDBManager::instance().EscapeString(text, packet->player_table.skills, sizeof(packet->player_table.skills)); queryLen += snprintf(queryStr + queryLen, sizeof(queryStr) - queryLen, "'%s', ", text); if (g_test_server) sys_log(0, "Create_Player queryLen[%d] TEXT[%s]", queryLen, text); CDBManager::instance().EscapeString(text, packet->player_table.quickslot, sizeof(packet->player_table.quickslot)); queryLen += snprintf(queryStr + queryLen, sizeof(queryStr) - queryLen, "'%s')", text); std::unique_ptr<SQLMsg> pMsg2(CDBManager::instance().DirectQuery(queryStr)); if (g_test_server) sys_log(0, "Create_Player queryLen[%d] TEXT[%s]", queryLen, text); if (pMsg2->Get()->uiAffectedRows <= 0) { peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_ALREADY, dwHandle, 0); sys_log(0, "ALREADY EXIST3 query: %s AffectedRows %lu", queryStr, pMsg2->Get()->uiAffectedRows); return; } player_id = pMsg2->Get()->uiInsertID; snprintf(queryStr, sizeof(queryStr), "UPDATE player_index%s SET pid%d=%d WHERE id=%d", GetTablePostfix(), packet->account_index + 1, player_id, packet->account_id); std::unique_ptr<SQLMsg> pMsg3(CDBManager::instance().DirectQuery(queryStr)); if (pMsg3->Get()->uiAffectedRows <= 0) { sys_err("QUERY_ERROR: %s", queryStr); snprintf(queryStr, sizeof(queryStr), "DELETE FROM player%s WHERE id=%d", GetTablePostfix(), player_id); CDBManager::instance().DirectQuery(queryStr); peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_FAILED, dwHandle, 0); return; } TPacketDGCreateSuccess pack; memset(&pack, 0, sizeof(pack)); pack.bAccountCharacterIndex = packet->account_index; pack.player.dwID = player_id; strlcpy(pack.player.szName, packet->player_table.name, sizeof(pack.player.szName)); pack.player.byJob = packet->player_table.job; pack.player.byLevel = 1; pack.player.dwPlayMinutes = 0; pack.player.byST = packet->player_table.st; pack.player.byHT = packet->player_table.ht; pack.player.byDX = packet->player_table.dx; pack.player.byIQ = packet->player_table.iq; pack.player.wMainPart = packet->player_table.part_base; pack.player.x = packet->player_table.x; pack.player.y = packet->player_table.y; peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_SUCCESS, dwHandle, sizeof(TPacketDGCreateSuccess)); peer->Encode(&pack, sizeof(TPacketDGCreateSuccess)); sys_log(0, "7 name %s job %d", pack.player.szName, pack.player.byJob); s_createTimeByAccountID[packet->account_id] = time(0); } All ready
-
-
Recently Browsing
- No registered users viewing this page.
Question
Hakikat 3
How do I add quest function help please ?
syserr
quest
How do I add quest function help please
Link to comment
Share on other sites
Top Posters For This Question
2
1
Popular Days
Dec 30
3
Top Posters For This Question
Hakikat 2 posts
Aurora 1 post
Popular Days
Dec 30 2014
3 posts
2 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now