Jump to content

LethalStrikeR

Member
  • Posts

    23
  • Joined

  • Last visited

  • Feedback

    0%

About LethalStrikeR

Informations

  • Gender
    Male

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

LethalStrikeR's Achievements

Enthusiast

Enthusiast (6/16)

  • Dedicated
  • Reacting Well
  • First Post
  • Collaborator
  • Conversation Starter

Recent Badges

0

Reputation

  1. def __OnClickSelectServerButton(self): if IsFullBackImage(): self.GetChild("bg1").Hide() self.GetChild("bg2").Show() regionID = self.__GetRegionID() serverID = self.__GetServerID() channelID = self.__GetChannelID() if (not serverInfo.REGION_DICT.has_key(regionID)): self.PopupNotifyMessage(localeInfo.CHANNEL_SELECT_REGION) return if (not serverInfo.REGION_DICT[regionID].has_key(serverID)): self.PopupNotifyMessage(localeInfo.CHANNEL_SELECT_SERVER) return try: channelDict = serverInfo.REGION_DICT[regionID][serverID]["channel"] except KeyError: return try: state = channelDict[channelID]["state"] except KeyError: self.PopupNotifyMessage(localeInfo.CHANNEL_SELECT_CHANNEL) return if state == serverInfo.STATE_DICT[3]: self.PopupNotifyMessage(localeInfo.CHANNEL_NOTIFY_FULL) return self.__SaveChannelInfo() try: serverName = serverInfo.REGION_DICT[regionID][serverID]["name"] channelName = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["name"] addrKey = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["key"] except: print " ERROR __OnClickSelectServerButton(%d, %d, %d)" % (regionID, serverID, channelID) serverName = localeInfo.CHANNEL_EMPTY_SERVER channelName = localeInfo.CHANNEL_NORMAL % channelID if app.BL_MOVE_CHANNEL: net.ClearServerInfo() channelMax = len(serverInfo.REGION_DICT[regionID][serverID]["channel"]) for i in xrange(1, channelMax+1): _channelName = serverInfo.REGION_DICT[regionID][serverID]["channel"][i]["name"] net.SetChannelName(i, _channelName.strip()) net.SetChannelName(99, localeInfo.MOVE_CHANNEL_99) net.SetChannelName(channelID) net.SetServerName(serverName) self.__SetServerInfo("%s, %s " % (serverName, channelName)) try: ip = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["ip"] tcp_port = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["tcp_port"] except: import exception exception.Abort("LoginWindow.__OnClickSelectServerButton - 서버 선택 실패") try: account_ip = serverInfo.REGION_AUTH_SERVER_DICT[regionID][serverID]["ip"] account_port = serverInfo.REGION_AUTH_SERVER_DICT[regionID][serverID]["port"] except: account_ip = 0 account_port = 0 try: markKey = regionID*1000 + serverID*10 markAddrValue=serverInfo.MARKADDR_DICT[markKey] net.SetMarkServer(markAddrValue["ip"], markAddrValue["tcp_port"]) app.SetGuildMarkPath(markAddrValue["mark"]) # GUILD_SYMBOL app.SetGuildSymbolPath(markAddrValue["symbol_path"]) # END_OF_GUILD_SYMBOL except: import exception exception.Abort("LoginWindow.__OnClickSelectServerButton - 마크 정보 없음") if app.USE_OPENID and not app.OPENID_TEST : self.stream.SetConnectInfo(ip, tcp_port, account_ip, account_port) self.Connect(0, 0) else : self.stream.SetConnectInfo(ip, tcp_port, account_ip, account_port) self.__OpenLoginBoard() That's all function.
  2. I'm getting this error: 0501 05:51:10824 :: Traceback (most recent call last): 0501 05:51:10824 :: File "ui.py", line 1051, in CallEvent 0501 05:51:10824 :: File "ui.py", line 88, in call 0501 05:51:10824 :: File "ui.py", line 70, in call 0501 05:51:10824 :: File "introLogin.py", line 1541, in __OnClickSelectServerButton 0501 05:51:10824 :: KeyError 0501 05:51:10824 :: : 0501 05:51:10824 :: 4 0501 05:51:10824 :: Someone has this fix? Please help. if app.BL_MOVE_CHANNEL: net.ClearServerInfo() channelMax = len(serverInfo.REGION_DICT[regionID][serverID]["channel"]) for i in xrange(1, channelMax+1): _channelName = serverInfo.REGION_DICT[regionID][serverID]["channel"][i]["name"] net.SetChannelName(i, _channelName.strip()) net.SetChannelName(99, localeInfo.MOVE_CHANNEL_99) net.SetChannelName(channelID) net.SetServerName(serverName)
  3. I'm getting this error: 0501 05:51:10824 :: Traceback (most recent call last): 0501 05:51:10824 :: File "ui.py", line 1051, in CallEvent 0501 05:51:10824 :: File "ui.py", line 88, in call 0501 05:51:10824 :: File "ui.py", line 70, in call 0501 05:51:10824 :: File "introLogin.py", line 1541, in __OnClickSelectServerButton 0501 05:51:10824 :: KeyError 0501 05:51:10824 :: : 0501 05:51:10824 :: 4 0501 05:51:10824 :: Someone has this fix? Please help.
  4. Hello everyone, friends; I have set up an Ikarus offline shop, but when I press the market opening button, such a syserr appears on the client. 0208 01:18:25416 :: Phase Game does not handle this header (header: 214, last: 3, 214) Although I have changed the number of packets in the Packet.h file many times, I still get this error. There is no problem with kicking it out of the game. Cores don't have syserr. This is the only syserr.
  5. The problem didn't come from there. It was fixed when the localeinfo text in the py file was processed as localeInfo.
  6. Hello everybody; I have syserr. Please help me. 0206 01:35:11198 :: UISCRIPT_LOAD_ERROR: 'NoneType' object has no attribute 'OFFLINESHOP_EDIT_SHOPNAME_TOOLTIP' [filename uiscript/offlineshopwindow.py] 0206 01:35:11198 :: Traceback (most recent call last): 0206 01:35:11198 :: File "networkModule.py", line 236, in SetGamePhase 0206 01:35:11198 :: File "game.py", line 95, in __init__ 0206 01:35:11198 :: File "interfaceModule.py", line 355, in MakeInterface 0206 01:35:11198 :: File "interfaceModule.py", line 206, in __MakeWindows 0206 01:35:11198 :: File "uiofflineshop.py", line 2789, in __init__ 0206 01:35:11198 :: File "uiofflineshop.py", line 2933, in __loadWindow 0206 01:35:11198 :: File "ui.py", line 4457, in LoadScriptFile 0206 01:35:11198 :: KeyError 0206 01:35:11198 :: : 0206 01:35:11198 :: 'window' 0206 01:35:11198 ::
  7. #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.
  8. 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
  9. 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.... root@ogstudio:/usr/vlad/Files/db/src #
  10. This is already old. I just deactivated Gaya from the CommonDefine.h file.
  11. 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_GEM_SYSTEM "gem, " #endif #ifdef __ENABLE_BATTLE_FIELD__ "battle_points, " #endif "playtime, skill_level, " #ifdef ENABLE_FISH_EVENT "fish_slots, " #endif #ifdef ENABLE_GEM_SYSTEM "gem_items, " #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_GEM_SYSTEM "%d, " #endif #ifdef __ENABLE_BATTLE_FIELD__ "%d, " #endif "0, ", // playtime 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_GEM_SYSTEM ,packet->player_table.gem #endif #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); #ifdef ENABLE_GEM_SYSTEM CDBManager::instance().EscapeString(text, packet->player_table.quickslot, sizeof(packet->player_table.quickslot)); queryLen += snprintf(queryStr + queryLen, sizeof(queryStr) - queryLen, "'%s', ", text); CDBManager::instance().EscapeString(text, packet->player_table.fishSlots, sizeof(packet->player_table.fishSlots)); queryLen += snprintf(queryStr + queryLen, sizeof(queryStr) - queryLen, "'%s', ", text); CDBManager::instance().EscapeString(text, packet->player_table.gemItems, sizeof(packet->player_table.gemItems)); queryLen += snprintf(queryStr + queryLen, sizeof(queryStr) - queryLen, "'%s')", text); #else CDBManager::instance().EscapeString(text, packet->player_table.quickslot, sizeof(packet->player_table.quickslot)); queryLen += snprintf(queryStr + queryLen, sizeof(queryStr) - queryLen, "'%s')", text); #endif 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); } It's already set like this
  12. I removed the Gaya system, but it gives this error when creating and deleting characters. The database is giving syserr like this. SYSERR: Jan 29 19:43:20 :: 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, '213123', 1, 4, 3, 6, 3, 5, 0, 0, 957586, 255386, 0, 770, 260, 0, 0, 0, 800, 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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\ SYSERR: Jan 29 19:43:20 :: __QUERY_PLAYER_CREATE: QUERY_ERROR: UPDATE player_index SET pid4=0 WHERE id=1 This İs my player.sql /* Navicat Premium Data Transfer Source Server : Yeni Proje Source Server Type : MySQL Source Server Version : 50562 Source Host : 192.168.1.62:3306 Source Schema : player Target Server Type : MySQL Target Server Version : 50562 File Encoding : 65001 Date: 29/01/2023 19:31:47 */ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for player -- ---------------------------- DROP TABLE IF EXISTS `player`; CREATE TABLE `player` ( `id` int(11) NOT NULL AUTO_INCREMENT, `account_id` int(11) NOT NULL DEFAULT 0, `name` varchar(24) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'NONAME', `job` tinyint(2) UNSIGNED NOT NULL DEFAULT 0, `voice` tinyint(1) UNSIGNED NOT NULL DEFAULT 0, `dir` tinyint(2) NOT NULL DEFAULT 0, `x` int(11) NOT NULL DEFAULT 0, `y` int(11) NOT NULL DEFAULT 0, `z` int(11) NOT NULL DEFAULT 0, `map_index` int(11) NOT NULL DEFAULT 0, `exit_x` int(11) NOT NULL DEFAULT 0, `exit_y` int(11) NOT NULL DEFAULT 0, `exit_map_index` int(11) NOT NULL DEFAULT 0, `hp` int(11) NOT NULL DEFAULT 0, `mp` int(11) NOT NULL DEFAULT 0, `stamina` smallint(6) NOT NULL DEFAULT 0, `random_hp` smallint(5) UNSIGNED NOT NULL DEFAULT 0, `random_sp` smallint(5) UNSIGNED NOT NULL DEFAULT 0, `playtime` int(11) NOT NULL DEFAULT 0, `level` tinyint(2) UNSIGNED NOT NULL DEFAULT 1, `level_step` tinyint(1) NOT NULL DEFAULT 0, `st` smallint(3) NOT NULL DEFAULT 0, `ht` smallint(3) NOT NULL DEFAULT 0, `dx` smallint(3) NOT NULL DEFAULT 0, `iq` smallint(3) NOT NULL DEFAULT 0, `gold` bigint(255) NOT NULL DEFAULT 0, `battle_points` int(11) NOT NULL DEFAULT 0, `exp` int(11) NOT NULL DEFAULT 0, `stat_point` smallint(3) NOT NULL DEFAULT 0, `skill_point` smallint(3) NOT NULL DEFAULT 0, `sub_skill_point` smallint(3) NOT NULL DEFAULT 0, `stat_reset_count` tinyint(4) NOT NULL DEFAULT 0, `ip` varchar(15) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT '0.0.0.0', `quickslot` tinyblob NULL, `part_main` smallint(6) UNSIGNED NOT NULL DEFAULT 0, `part_hair` smallint(4) NOT NULL DEFAULT 0, `part_sash` smallint(4) UNSIGNED NOT NULL DEFAULT 0, `part_base` tinyint(4) NOT NULL DEFAULT 0, `skill_group` tinyint(4) NOT NULL DEFAULT 0, `skill_level` blob NULL, `alignment` int(11) NOT NULL DEFAULT 0, `last_play` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `change_name` tinyint(1) NOT NULL DEFAULT 0, `mobile` varchar(24) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL, `horse_hp` smallint(4) NOT NULL DEFAULT 0, `horse_stamina` smallint(4) NULL DEFAULT 0, `horse_level` tinyint(2) UNSIGNED NOT NULL DEFAULT 0, `horse_hp_droptime` int(10) UNSIGNED NOT NULL DEFAULT 0, `horse_riding` tinyint(1) NOT NULL DEFAULT 0, `horse_skill_point` smallint(3) NOT NULL DEFAULT 0, `fish_use_count` int(11) NULL DEFAULT NULL, `fish_slots` blob NULL, `money` bigint(20) NOT NULL, `t_choosed` int(11) NOT NULL DEFAULT 0, `t_available` varbinary(201) NOT NULL DEFAULT '1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,', PRIMARY KEY (`id`) USING BTREE, INDEX `account_id_idx`(`account_id`) USING BTREE, INDEX `name_idx`(`name`) USING BTREE ) ENGINE = MyISAM AUTO_INCREMENT = 19 CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of player -- ---------------------------- INSERT INTO `player` VALUES (1, 1, 'T69', 0, 0, 0, 960567, 270109, 0, 41, 960567, 270109, 41, 13320, 2558, 1695, 3920, 2058, 3629, 99, 3, 6, 4, 3, 3, 448143605, 999999355478500, 50, 273, 13, 0x020502020201020302040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, '192.168.1.103', 11299, 0, 0, 0, 0, 2, 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011400000000011400000000011400000000011400000000011400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011400000000011400000000011400000000000000000000021E00000000000A00000000000000000000000000000000000000000000000000000000000000000000011400000000011400000000011400000000011400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 200000, 0, '2023-01-29 18:15:28', 0, NULL, 90, 0, 50, 200, 30, 1675275020, 0, 0, 8, 0x010201040004010700070007000000000004000700070007010500050107000700070000000500050007000700070102, 0, 0, '', '', '0000-00-00 00:00:00', 0, 0x302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C); INSERT INTO `player` VALUES (2, 2, 'T89', 2, 0, 0, 959585, 272412, 0, 41, 959585, 272412, 41, 7030, 2326, 1315, 3760, 1786, 250, 95, 0, 5, 3, 3, 5, 0, 0, 0, 270, 94, 0x020102020206020502040203000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, '192.168.1.103', 11609, 0, 0, 0, 0, 1, 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000032800000000032800000000032800000000032800000000032800000000032800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000032800000000000200000000000000000000032800000000000000000000011400000000011400000000011400000000032800000000021E00000000000A00000000000000000000000000000000000000000000000000000000000000000000011400000000011400000000011400000000011400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000032800000000032800000000032800000000032800000000032800000000032800000000032800000000032800000000032800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 200000, 0, '2022-11-19 13:33:39', 0, NULL, 36, 0, 50, 200, 30, 1669119073, 0, 0, 0, 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 0, 0, '', '', '0000-00-00 00:00:00', 0, 0x302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C); INSERT INTO `player` VALUES (9, 9, 'DEV', 2, 0, 0, 955891, 249186, 0, 41, 955891, 249186, 41, 3353, 583, 1315, 83, 43, 46, 3, 0, 5, 3, 3, 5, 150, 9876, 0, 6, 0, 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, '192.168.1.103', 11609, 0, 0, 0, 0, 0, 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 5272, 0, '2022-12-04 02:03:45', 0, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 0, 0, '', '', '0000-00-00 00:00:00', 0, 0x302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C); INSERT INTO `player` VALUES (5, 2, 'iCanSeeYou', 0, 0, 0, 960060, 273034, 0, 41, 960060, 273034, 41, 3260, 260, 1259, 0, 0, 4, 1, 0, 6, 4, 3, 3, 0, 0, 0, 0, 0, 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, '192.168.56.1', 11209, 0, 0, 0, 0, 0, 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 5020, 0, '2019-06-30 19:12:21', 0, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 0, 0, '', '', '0000-00-00 00:00:00', 0, 0x302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C); INSERT INTO `player` VALUES (7, 9, 'Olokfli', 0, 0, 0, 969600, 278400, 0, 41, 969600, 278400, 41, 8611, 1191, 1750, 1911, 931, 95, 50, 2, 72, 90, 3, 3, 50171, 398842, 0, 0, 2, 0x010302040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, '192.168.1.103', 11209, 0, 0, 0, 0, 1, 0x000000000000000000000000000000000000000000000000000B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000032800000000000200000000000000000000032800000000000000000000032800000000032800000000032800000000032800000000011500000000032800000000000000000000000000000000000000000000000000000000000000000000011400000000011400000000011400000000011400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 5924, 0, '2022-11-19 14:05:11', 0, NULL, -45, 0, 35, 120, 21, 1669122003, 0, 0, 0, 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 0, 0, '', '', '0000-00-00 00:00:00', 0, 0x302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C302C); SET FOREIGN_KEY_CHECKS = 1;
  13. Severity Code Description Project File Line Hide Status Error C1047 '.. \ .. \ extern \ lib \ libjpeg-MT.lib' object or library file was created by a different version of the compiler than other objects such as '.. \ .. \ extern \ lib \ discord_rpc_r.lib'; Recompile all objects and libraries with the same compiler UserInterface @Mali61
  14. import uvvY2sBNvVcbJz4jvDr6fSWYdmqv9NPQ as pythonApi net = __import__(pythonApi.GetModuleName("net")) app = __import__(pythonApi.GetModuleName("app")) player = __import__(pythonApi.GetModuleName("player")) chrmgr = __import__(pythonApi.GetModuleName("chrmgr")) skill = __import__(pythonApi.GetModuleName("skill")) item = __import__(pythonApi.GetModuleName("item")) guild = __import__(pythonApi.GetModuleName("guild")) import ui import localeInfo import wndMgr import constInfo import mouseModule import uiScriptLocale import uiToolTip import interfaceModule MOUSE_SETTINGS = [0, 0] lista_mapas = { "mapa_guerra" : "", "mapa_duelos_pvp" : "", } def InitMouseButtonSettings(left, right): global MOUSE_SETTINGS MOUSE_SETTINGS = [left, right] def SetMouseButtonSetting(dir, event): global MOUSE_SETTINGS MOUSE_SETTINGS[dir] = event def GetMouseButtonSettings(): global MOUSE_SETTINGS return MOUSE_SETTINGS def SaveMouseButtonSettings(): global MOUSE_SETTINGS open("mouse.cfg", "w").write("%s\t%s" % tuple(MOUSE_SETTINGS)) def LoadMouseButtonSettings(): global MOUSE_SETTINGS tokens = open("mouse.cfg", "r").read().split() if len(tokens) != 2: raise RuntimeError, "MOUSE_SETTINGS_FILE_ERROR" MOUSE_SETTINGS[0] = int(tokens[0]) MOUSE_SETTINGS[1] = int(tokens[1]) def unsigned32(n): return n & 0xFFFFFFFFL #-------------------Giftbox Begin------------------------------ class GiftBox(ui.ScriptWindow): class TextToolTip(ui.Window): def __init__(self): ui.Window.__init__(self, "TOP_MOST") self.SetWindowName("GiftBox") textLine = ui.TextLine() textLine.SetParent(self) textLine.SetHorizontalAlignCenter() textLine.SetOutline() textLine.Show() self.textLine = textLine def __del__(self): ui.Window.__del__(self) def SetText(self, text): self.textLine.SetText(text) def OnRender(self): (mouseX, mouseY) = wndMgr.GetMousePosition() self.textLine.SetPosition(mouseX, mouseY - 15) def __init__(self): #print "NEW TASKBAR ----------------------------------------------------------------------------" ui.ScriptWindow.__init__(self) self.tooltipGift = self.TextToolTip() self.tooltipGift.Show() def __del__(self): #print "---------------------------------------------------------------------------- DELETE TASKBAR" ui.ScriptWindow.__del__(self) def LoadWindow(self): try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "giftbox.py") except: import exception exception.Abort("GiftBox.LoadWindow.LoadObject") self.giftBoxIcon = self.GetChild("GiftBox_Icon") self.giftBoxToolTip = self.GetChild("GiftBox_ToolTip") def Destroy(self): self.giftBoxIcon = 0 self.giftBoxToolTip = 0 #-------------------Giftbox End------------------------------ class EnergyBar(ui.ScriptWindow): class TextToolTip(ui.Window): def __init__(self): ui.Window.__init__(self, "TOP_MOST") self.SetWindowName("EnergyBar") textLine = ui.TextLine() textLine.SetParent(self) textLine.SetHorizontalAlignCenter() textLine.SetOutline() textLine.Show() self.textLine = textLine def __del__(self): ui.Window.__del__(self) def SetText(self, text): self.textLine.SetText(text) def OnRender(self): (mouseX, mouseY) = wndMgr.GetMousePosition() self.textLine.SetPosition(mouseX, mouseY - 15) def __init__(self): #print "NEW TASKBAR ----------------------------------------------------------------------------" ui.ScriptWindow.__init__(self) self.tooltipEnergy = self.TextToolTip() self.tooltipEnergy.Show() def __del__(self): #print "---------------------------------------------------------------------------- DELETE TASKBAR" ui.ScriptWindow.__del__(self) def LoadWindow(self): try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "EnergyBar.py") except: import exception exception.Abort("EnergyBar.LoadWindow.LoadObject") self.energyEmpty = self.GetChild("EnergyGauge_Empty") self.energyHungry = self.GetChild("EnergyGauge_Hungry") self.energyFull = self.GetChild("EnergyGauge_Full") self.energyGaugeBoard = self.GetChild("EnergyGauge_Board") self.energyGaugeToolTip = self.GetChild("EnergyGauge_ToolTip") def Destroy(self): self.energyEmpty = None self.energyHungry = None self.energyFull = None self.energyGaugeBoard = 0 self.energyGaugeToolTip = 0 self.tooltipEnergy = 0 ## Gauge def RefreshStatus(self): pointEnergy = player.GetStatus (player.ENERGY) leftTimeEnergy = player.GetStatus (player.ENERGY_END_TIME) - app.GetGlobalTimeStamp() # 충기환 지속 시간 = 2시간. self.SetEnergy (pointEnergy, leftTimeEnergy, 7200) def SetEnergy (self, point, leftTime, maxTime): leftTime = max (leftTime, 0) maxTime = max (maxTime, 0) self.energyEmpty.Hide() self.energyHungry.Hide() self.energyFull.Hide() if leftTime == 0: self.energyEmpty.Show() elif ((leftTime * 100) / maxTime) < 15: self.energyHungry.Show() else: self.energyFull.Show() self.tooltipEnergy.SetText(" " + localeInfo.SecondToHM(leftTime) + " - Energie +" + str(point) + "%") def OnUpdate(self): if TRUE == self.energyGaugeToolTip.IsIn(): self.RefreshStatus() self.tooltipEnergy.Show() else: self.tooltipEnergy.Hide() class ExpandedTaskBar(ui.ScriptWindow): BUTTON_DRAGON_SOUL = 0 BUTTON_PET_GUI = 1 BUTTON_OTOMATIK_AV = 2 def __init__(self): ui.Window.__init__(self) self.SetWindowName("ExpandedTaskBar") def LoadWindow(self): try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "ExpandedTaskBar.py") except: import exception exception.Abort("ExpandedTaskBar.LoadWindow.LoadObject") self.expandedTaskBarBoard = self.GetChild("ExpanedTaskBar_Board") self.toggleButtonDict = {} self.toggleButtonDict[ExpandedTaskBar.BUTTON_DRAGON_SOUL] = self.GetChild("DragonSoulButton") self.toggleButtonDict[ExpandedTaskBar.BUTTON_DRAGON_SOUL].SetParent(self) self.toggleButtonDict[ExpandedTaskBar.BUTTON_PET_GUI] = self.GetChild("PetGuiButton") self.toggleButtonDict[ExpandedTaskBar.BUTTON_PET_GUI].SetParent(self) self.toggleButtonDict[ExpandedTaskBar.BUTTON_OTOMATIK_AV] = self.GetChild("AutoButton") self.toggleButtonDict[ExpandedTaskBar.BUTTON_OTOMATIK_AV].SetParent(self) def SetTop(self): super(ExpandedTaskBar, self).SetTop() for button in self.toggleButtonDict.values(): button.SetTop() def Show(self): ui.ScriptWindow.Show(self) def Close(self): self.Hide() def SetToolTipText(self, eButton, text): self.toggleButtonDict[eButton].SetToolTipText(text) def SetToggleButtonEvent(self, eButton, kEventFunc): self.toggleButtonDict[eButton].SetEvent(kEventFunc) def OnPressEscapeKey(self): self.Close() return TRUE class ExpandedMoneyTaskBar(ui.ScriptWindow): def __init__(self): ui.Window.__init__(self) self.SetWindowName("ExpandedMoneyTaskBar") toolTipMoneyTitle = None toolTipChequeTitle = None self.interface = None def LoadWindow(self): try: pyScrLoader = ui.PythonScriptLoader() # pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "ExpandedTaskBar.py") pyScrLoader.LoadScriptFile(self, "UIScript/ExpandedMoneyTaskBar.py") except: import exception exception.Abort("ExpandedTaskBar.LoadWindow.LoadObject") self.btnExchangeButton = self.GetChild("ExchangeButton") self.btnExchangeButton.SetEvent(ui.__mem_func__(self.OpenWonExchangeWindow)) self.expandedTaskBarBoard = self.GetChild("ExpanedMoneyTaskBar_Board") # self.moneySlot = self.GetChild("Money_Slot") self.money = self.GetChild("Money") self.wndMoneySlotIcon = self.GetChild("Money_Icon") self.wndMoneySlotIcon.SAFE_SetStringEvent("MOUSE_OVER_IN", self.__ShowMoneyTitleToolTip) self.wndMoneySlotIcon.SAFE_SetStringEvent("MOUSE_OVER_OUT", self.__HideMoneyTitleToolTip) # self.chequeSlot = self.GetChild("Cheque_Slot") self.cheque = self.GetChild("Cheque") self.wndChequeSlotIcon = self.GetChild("Cheque_Icon") self.wndChequeSlotIcon.SAFE_SetStringEvent("MOUSE_OVER_IN", self.__ShowChequeTitleToolTip) self.wndChequeSlotIcon.SAFE_SetStringEvent("MOUSE_OVER_OUT", self.__HideChequeTitleToolTip) self.__SetChequeSystemToolTip() # self.Gem = self.GetChild("Gem") # self.wndGemSlotIcon = self.GetChild("Gem_Icon") # self.wndGemSlotIcon.SAFE_SetStringEvent("MOUSE_OVER_IN", self.__ShowGemTitleToolTip) # self.wndGemSlotIcon.SAFE_SetStringEvent("MOUSE_OVER_OUT", self.__HideGemTitleToolTip) # self.RedGem = self.GetChild("RedGem") # self.RedGem_Icon = self.GetChild("RedGem_Icon") # self.RedGem_Icon.SAFE_SetStringEvent("MOUSE_OVER_IN", self.__ShowRedGemTitleToolTip) # self.RedGem_Icon.SAFE_SetStringEvent("MOUSE_OVER_OUT", self.__HideRedGemTitleToolTip) def Show(self): ui.ScriptWindow.Show(self) def Close(self): self.Hide() def BindInterface(self, interface): from _weakref import proxy self.interface = proxy(interface) def RefreshStatus(self): self.money.SetText(localeInfo.NumberToString(player.GetMoney())) self.cheque.SetText(localeInfo.NumberToString(player.GetCheque())) # if app.ENABLE_BOSS_GEM_SYSTEM: # self.Gem.SetText(localeInfo.NumberToString(player.GetItemCountByVnum(50926))) # self.RedGem.SetText(localeInfo.NumberToString(player.GetItemCountByVnum(50927))) # else: # self.Gem.SetText(localeInfo.NumberToString(player.GetGem())) # if app.ENABLE_BOSS_GEM_SYSTEM: # def OnUpdate(self): # if self.Gem: # self.Gem.SetText(localeInfo.NumberToString(player.GetItemCountByVnum(50926))) # self.RedGem.SetText(localeInfo.NumberToString(player.GetItemCountByVnum(50927))) def SetTop(self): super(ExpandedMoneyTaskBar, self).SetTop() def SetToggleButtonEvent(self, eButton, kEventFunc): self.toggleButtonDict[eButton].SetEvent(kEventFunc) def OpenWonExchangeWindow(self): self.interface.ToggleWonExchangeWindow() def __SetChequeSystemToolTip(self): self.toolTipChequeTitle = uiToolTip.ToolTip(20) self.toolTipChequeTitle.AutoAppendTextLine(localeInfo.CHEQUE_SYSTEM_UNIT_WON, uiToolTip.ToolTip.WON_PRICE_COLOR) self.toolTipChequeTitle.AlignHorizonalCenter() self.toolTipMoneyTitle = uiToolTip.ToolTip(20) self.toolTipMoneyTitle.AutoAppendTextLine(localeInfo.CHEQUE_SYSTEM_UNIT_YANG, uiToolTip.ToolTip.PRICE_INFO_COLOR) self.toolTipMoneyTitle.AlignHorizonalCenter() # self.toolTipGemTitle = uiToolTip.ToolTip(20) # self.toolTipGemTitle.AutoAppendTextLine(localeInfo.CHEQUE_SYSTEM_UNIT_GEM, uiToolTip.ToolTip.PRICE_INFO_COLOR) # self.toolTipGemTitle.AlignHorizonalCenter() # self.toolTipRedGemTitle = uiToolTip.ToolTip(20) # self.toolTipRedGemTitle.AutoAppendTextLine(localeInfo.CHEQUE_SYSTEM_UNIT_RED_GEM, uiToolTip.ToolTip.PRICE_INFO_COLOR) # self.toolTipRedGemTitle.AlignHorizonalCenter() def __ShowMoneyTitleToolTip(self): self.toolTipMoneyTitle.ShowToolTip() def __HideMoneyTitleToolTip(self): self.toolTipMoneyTitle.HideToolTip() def __ShowChequeTitleToolTip(self): self.toolTipChequeTitle.ShowToolTip() def __HideChequeTitleToolTip(self): self.toolTipChequeTitle.HideToolTip() # def __ShowGemTitleToolTip(self): # self.toolTipGemTitle.ShowToolTip() # def __HideGemTitleToolTip(self): # self.toolTipGemTitle.HideToolTip() # def __ShowRedGemTitleToolTip(self): # self.toolTipRedGemTitle.ShowToolTip() # def __HideRedGemTitleToolTip(self): # self.toolTipRedGemTitle.HideToolTip() def OnPressEscapeKey(self): self.Close() return True class TaskBar(ui.ScriptWindow): BUTTON_CHARACTER = 0 BUTTON_INVENTORY = 1 BUTTON_MESSENGER = 2 BUTTON_SYSTEM = 3 BUTTON_CHAT = 4 BUTTON_EXPAND = 4 BUTTON_EXPAND_MONEY = 5 BUTTON_VECTORS = 6 IS_EXPANDED = FALSE MOUSE_BUTTON_LEFT = 0 MOUSE_BUTTON_RIGHT = 1 NONE = 255 EVENT_MOVE = 0 EVENT_ATTACK = 1 EVENT_MOVE_AND_ATTACK = 2 EVENT_CAMERA = 3 EVENT_SKILL = 4 EVENT_AUTO = 5 GAUGE_WIDTH = 95 GAUGE_HEIGHT = 13 QUICKPAGE_NUMBER_FILENAME = [ "d:/ymir work/ui/game/taskbar/1.sub", "d:/ymir work/ui/game/taskbar/2.sub", "d:/ymir work/ui/game/taskbar/3.sub", "d:/ymir work/ui/game/taskbar/4.sub", ] def ShowGift(self): self.wndGiftBox.Show() def HideGift(self): self.wndGiftBox.Hide() class TextToolTip(ui.Window): def __init__(self): ui.Window.__init__(self, "TOP_MOST") textLine = ui.TextLine() textLine.SetParent(self) textLine.SetHorizontalAlignCenter() textLine.SetOutline() textLine.Show() self.textLine = textLine def __del__(self): ui.Window.__del__(self) def SetText(self, text): self.textLine.SetText(text) def OnRender(self): (mouseX, mouseY) = wndMgr.GetMousePosition() self.textLine.SetPosition(mouseX, mouseY - 15) class SkillButton(ui.SlotWindow): def __init__(self): ui.SlotWindow.__init__(self) self.event = 0 self.arg = 0 self.slotIndex = 0 self.skillIndex = 0 slotIndex = 0 wndMgr.SetSlotBaseImage(self.hWnd, "d:/ymir work/ui/public/slot_base.sub", 1.0, 1.0, 1.0, 1.0) wndMgr.AppendSlot(self.hWnd, slotIndex, 0, 0, 32, 32) self.SetCoverButton(slotIndex, "d:/ymir work/ui/public/slot_cover_button_01.sub",\ "d:/ymir work/ui/public/slot_cover_button_02.sub",\ "d:/ymir work/ui/public/slot_cover_button_03.sub",\ "d:/ymir work/ui/public/slot_cover_button_04.sub", TRUE, FALSE) self.SetSize(32, 32) def __del__(self): ui.SlotWindow.__del__(self) def Destroy(self): if 0 != self.tooltipSkill: self.tooltipSkill.HideToolTip() def RefreshSkill(self): if 0 != self.slotIndex: self.SetSkill(self.slotIndex) def SetSkillToolTip(self, tooltip): self.tooltipSkill = tooltip def SetSkill(self, skillSlotNumber): slotNumber = 0 skillIndex = player.GetSkillIndex(skillSlotNumber) skillGrade = player.GetSkillGrade(skillSlotNumber) skillLevel = player.GetSkillLevel(skillSlotNumber) skillType = skill.GetSkillType(skillIndex) self.skillIndex = skillIndex if 0 == self.skillIndex: self.ClearSlot(slotNumber) return self.slotIndex = skillSlotNumber self.SetSkillSlotNew(slotNumber, skillIndex, skillGrade, skillLevel) self.SetSlotCountNew(slotNumber, skillGrade, skillLevel) ## NOTE : CoolTime 체크 if player.IsSkillCoolTime(skillSlotNumber): (coolTime, elapsedTime) = player.GetSkillCoolTime(skillSlotNumber) self.SetSlotCoolTime(slotNumber, coolTime, elapsedTime) ## NOTE : Activate 되어 있다면 아이콘도 업데이트 if player.IsSkillActive(skillSlotNumber): self.ActivateSlot(slotNumber) def SetSkillEvent(self, event, arg=0): self.event = event self.arg = arg def GetSkillIndex(self): return self.skillIndex def GetSlotIndex(self): return self.slotIndex def Activate(self, coolTime): self.SetSlotCoolTime(0, coolTime) if skill.IsToggleSkill(self.skillIndex): self.ActivateSlot(0) def Deactivate(self): if skill.IsToggleSkill(self.skillIndex): self.DeactivateSlot(0) def OnOverInItem(self, dummy): self.tooltipSkill.SetSkill(self.skillIndex) def OnOverOutItem(self): self.tooltipSkill.HideToolTip() def OnSelectItemSlot(self, dummy): if 0 != self.event: if 0 != self.arg: self.event(self.arg) else: self.event() def __init__(self): #print "NEW TASKBAR ----------------------------------------------------------------------------" ui.ScriptWindow.__init__(self, "TOP_MOST") self.quickPageNumImageBox = None self.tooltipItem = 0 self.tooltipSkill = 0 self.mouseModeButtonList = [ ui.ScriptWindow("TOP_MOST"), ui.ScriptWindow("TOP_MOST") ] self.tooltipHP = self.TextToolTip() self.tooltipHP.Show() self.tooltipSP = self.TextToolTip() self.tooltipSP.Show() self.tooltipST = self.TextToolTip() self.tooltipST.Show() self.tooltipEXP = self.TextToolTip() self.tooltipEXP.Show() self.skillCategoryNameList = [ "ACTIVE_1", "ACTIVE_2", "ACTIVE_3" ] self.skillPageStartSlotIndexDict = { "ACTIVE_1" : 1, "ACTIVE_2" : 21, "ACTIVE_3" : 41, } self.selectSkillButtonList = [] self.lastUpdateQuickSlot = 0 self.SetWindowName("TaskBar") def __del__(self): #print "---------------------------------------------------------------------------- DELETE TASKBAR" ui.ScriptWindow.__del__(self) def LoadWindow(self): try: pyScrLoader = ui.PythonScriptLoader() if constInfo.IN_GAME_SHOP_ENABLE: pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "TaskBar.py") else: pyScrLoader.LoadScriptFile(self, "UIScript/TaskBar.py") pyScrLoader.LoadScriptFile(self.mouseModeButtonList[self.MOUSE_BUTTON_LEFT], "UIScript/MouseButtonWindow.py") pyScrLoader.LoadScriptFile(self.mouseModeButtonList[self.MOUSE_BUTTON_RIGHT], "UIScript/RightMouseButtonWindow.py") except: import exception exception.Abort("TaskBar.LoadWindow.LoadObject") self.quickslot = [] self.quickslot.append(self.GetChild("quick_slot_1")) self.quickslot.append(self.GetChild("quick_slot_2")) for slot in self.quickslot: slot.SetSlotStyle(wndMgr.SLOT_STYLE_NONE) slot.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptyQuickSlot)) slot.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemQuickSlot)) slot.SetUnselectItemSlotEvent(ui.__mem_func__(self.UnselectItemQuickSlot)) slot.SetOverInItemEvent(ui.__mem_func__(self.OverInItem)) slot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem)) toggleButtonDict = {} toggleButtonDict[TaskBar.BUTTON_CHARACTER]=self.GetChild("CharacterButton") toggleButtonDict[TaskBar.BUTTON_INVENTORY]=self.GetChild("InventoryButton") toggleButtonDict[TaskBar.BUTTON_MESSENGER]=self.GetChild("MessengerButton") toggleButtonDict[TaskBar.BUTTON_SYSTEM]=self.GetChild("SystemButton") # ChatButton, ExpandButton 둘 중 하나는 반드시 존재한다. try: toggleButtonDict[TaskBar.BUTTON_CHAT]=self.GetChild("ChatButton") except: toggleButtonDict[TaskBar.BUTTON_EXPAND]=self.GetChild("ExpandButton") TaskBar.IS_EXPANDED = TRUE toggleButtonDict[TaskBar.BUTTON_EXPAND_MONEY]=self.GetChild("ExpandMoneyButton") toggleButtonDict[TaskBar.BUTTON_VECTORS]=self.GetChild("VectorsTeleportButton") if localeInfo.IsARABIC(): systemButton = toggleButtonDict[TaskBar.BUTTON_SYSTEM] if systemButton.ToolTipText: tx, ty = systemButton.ToolTipText.GetLocalPosition() tw = systemButton.ToolTipText.GetWidth() systemButton.ToolTipText.SetPosition(-tw/2, ty) expGauge = [] expGauge.append(self.GetChild("EXPGauge_01")) expGauge.append(self.GetChild("EXPGauge_02")) expGauge.append(self.GetChild("EXPGauge_03")) expGauge.append(self.GetChild("EXPGauge_04")) for exp in expGauge: exp.SetSize(0, 0) self.quickPageNumImageBox=self.GetChild("QuickPageNumber") self.GetChild("QuickPageUpButton").SetEvent(ui.__mem_func__(self.__OnClickQuickPageUpButton)) self.GetChild("QuickPageDownButton").SetEvent(ui.__mem_func__(self.__OnClickQuickPageDownButton)) ########Anti Exp Button by Sanii########## #self.antiexp = self.GetChild("AntiButton") #self.antiexp.SetEvent(ui.__mem_func__(self.AntiExp)) #if constInfo.ANTI_EXP_STATE == 1: #self.antiexp.SetText("-") #self.antiexp.SetToolTipText("Anti-Erfahrung deaktivieren") #else: #self.antiexp.SetText("+") #self.antiexp.SetToolTipText("Anti-Erfahrung aktivieren") mouseLeftButtonModeButton = self.GetChild("LeftMouseButton") mouseRightButtonModeButton = self.GetChild("RightMouseButton") mouseLeftButtonModeButton.SetEvent(ui.__mem_func__(self.ToggleLeftMouseButtonModeWindow)) mouseRightButtonModeButton.SetEvent(ui.__mem_func__(self.ToggleRightMouseButtonModeWindow)) self.curMouseModeButton = [ mouseLeftButtonModeButton, mouseRightButtonModeButton ] (xLocalRight, yLocalRight) = mouseRightButtonModeButton.GetLocalPosition() self.curSkillButton = self.SkillButton() self.curSkillButton.SetParent(self) self.curSkillButton.SetPosition(xLocalRight, 3) self.curSkillButton.SetSkillEvent(ui.__mem_func__(self.ToggleRightMouseButtonModeWindow)) self.curSkillButton.Hide() (xLeft, yLeft) = mouseLeftButtonModeButton.GetGlobalPosition() (xRight, yRight) = mouseRightButtonModeButton.GetGlobalPosition() leftModeButtonList = self.mouseModeButtonList[self.MOUSE_BUTTON_LEFT] leftModeButtonList.SetPosition(xLeft, yLeft - leftModeButtonList.GetHeight()-5) rightModeButtonList = self.mouseModeButtonList[self.MOUSE_BUTTON_RIGHT] rightModeButtonList.SetPosition(xRight - rightModeButtonList.GetWidth() + 32, yRight - rightModeButtonList.GetHeight()-5) rightModeButtonList.GetChild("button_skill").SetEvent(lambda adir=self.MOUSE_BUTTON_RIGHT, aevent=self.EVENT_SKILL: self.SelectMouseButtonEvent(adir, aevent)) rightModeButtonList.GetChild("button_skill").Hide() mouseImage = ui.ImageBox("TOP_MOST") mouseImage.AddFlag("float") mouseImage.LoadImage("d:/ymir work/ui/game/taskbar/mouse_button_camera_01.sub") mouseImage.SetPosition(xRight, wndMgr.GetScreenHeight() - 34) mouseImage.Hide() self.mouseImage = mouseImage dir = self.MOUSE_BUTTON_LEFT wnd = self.mouseModeButtonList[dir] wnd.GetChild("button_move_and_attack").SetEvent(lambda adir=dir, aevent=self.EVENT_MOVE_AND_ATTACK: self.SelectMouseButtonEvent(adir, aevent)) wnd.GetChild("button_auto_attack").SetEvent(lambda adir=dir, aevent=self.EVENT_AUTO: self.SelectMouseButtonEvent(adir, aevent)) wnd.GetChild("button_camera").SetEvent(lambda adir=dir, aevent=self.EVENT_CAMERA: self.SelectMouseButtonEvent(adir, aevent)) dir = self.MOUSE_BUTTON_RIGHT wnd = self.mouseModeButtonList[dir] wnd.GetChild("button_move_and_attack").SetEvent(lambda adir=dir, aevent=self.EVENT_MOVE_AND_ATTACK: self.SelectMouseButtonEvent(adir, aevent)) wnd.GetChild("button_camera").SetEvent(lambda adir=dir, aevent=self.EVENT_CAMERA: self.SelectMouseButtonEvent(adir, aevent)) self.toggleButtonDict = toggleButtonDict self.expGauge = expGauge if constInfo.IN_GAME_SHOP_ENABLE: self.rampageGauge1 = self.GetChild("RampageGauge") self.rampageGauge1.OnMouseOverIn = ui.__mem_func__(self.__RampageGauge_OverIn) self.rampageGauge2 = self.GetChild("RampageGauge2") self.rampageGauge2.OnMouseOverOut = ui.__mem_func__(self.__RampageGauge_OverOut) self.rampageGauge2.OnMouseLeftButtonUp = ui.__mem_func__(self.__RampageGauge_Click) self.__RampageGauge_OverOut() self.hpGauge = self.GetChild("HPGauge") self.mpGauge = self.GetChild("SPGauge") self.stGauge = self.GetChild("STGauge") self.hpRecoveryGaugeBar = self.GetChild("HPRecoveryGaugeBar") self.spRecoveryGaugeBar = self.GetChild("SPRecoveryGaugeBar") self.hpGaugeBoard=self.GetChild("HPGauge_Board") self.mpGaugeBoard=self.GetChild("SPGauge_Board") self.stGaugeBoard=self.GetChild("STGauge_Board") self.expGaugeBoard=self.GetChild("EXP_Gauge_Board") wndGiftBox = GiftBox() wndGiftBox.LoadWindow() self.wndGiftBox = wndGiftBox self.__LoadMouseSettings() self.RefreshStatus() self.RefreshQuickSlot() def __RampageGauge_OverIn(self): print "rampage_over_in" self.rampageGauge2.Show() self.rampageGauge1.Hide() def __RampageGauge_OverOut(self): print "rampage_over_out" self.rampageGauge2.Hide() self.rampageGauge1.Show() def __RampageGauge_Click(self): print "rampage_up" net.SendChatPacket("/in_game_mall") self.wndGiftBox.Hide() def __LoadMouseSettings(self): try: LoadMouseButtonSettings() (mouseLeftButtonEvent, mouseRightButtonEvent) = GetMouseButtonSettings() if not self.__IsInSafeMouseButtonSettingRange(mouseLeftButtonEvent) or not self.__IsInSafeMouseButtonSettingRange(mouseRightButtonEvent): raise RuntimeError, "INVALID_MOUSE_BUTTON_SETTINGS" except: InitMouseButtonSettings(self.EVENT_MOVE_AND_ATTACK, self.EVENT_CAMERA) (mouseLeftButtonEvent, mouseRightButtonEvent) = GetMouseButtonSettings() try: self.SelectMouseButtonEvent(self.MOUSE_BUTTON_LEFT, mouseLeftButtonEvent) self.SelectMouseButtonEvent(self.MOUSE_BUTTON_RIGHT, mouseRightButtonEvent) except: InitMouseButtonSettings(self.EVENT_MOVE_AND_ATTACK, self.EVENT_CAMERA) (mouseLeftButtonEvent, mouseRightButtonEvent) = GetMouseButtonSettings() self.SelectMouseButtonEvent(self.MOUSE_BUTTON_LEFT, mouseLeftButtonEvent) self.SelectMouseButtonEvent(self.MOUSE_BUTTON_RIGHT, mouseRightButtonEvent) def __IsInSafeMouseButtonSettingRange(self, arg): return arg >= self.EVENT_MOVE and arg <= self.EVENT_AUTO def Destroy(self): SaveMouseButtonSettings() self.ClearDictionary() self.mouseModeButtonList[0].ClearDictionary() self.mouseModeButtonList[1].ClearDictionary() self.mouseModeButtonList = 0 self.curMouseModeButton = 0 self.curSkillButton = 0 self.selectSkillButtonList = 0 self.Jeaktivni = 0 self.expGauge = None self.hpGauge = None self.mpGauge = None self.stGauge = None self.hpRecoveryGaugeBar = None self.spRecoveryGaugeBar = None self.tooltipItem = 0 self.tooltipSkill = 0 self.quickslot = 0 self.toggleButtonDict = 0 self.hpGaugeBoard = 0 self.mpGaugeBoard = 0 self.stGaugeBoard = 0 self.expGaugeBoard = 0 self.tooltipHP = 0 self.tooltipSP = 0 self.tooltipST = 0 self.tooltipEXP = 0 self.mouseImage = None def __OnClickQuickPageUpButton(self): player.SetQuickPage(player.GetQuickPage()-1) def __OnClickQuickPageDownButton(self): player.SetQuickPage(player.GetQuickPage()+1) def SetToggleButtonEvent(self, eButton, kEventFunc): self.toggleButtonDict[eButton].SetEvent(kEventFunc) def SetItemToolTip(self, tooltipItem): self.tooltipItem = tooltipItem def SetSkillToolTip(self, tooltipSkill): self.tooltipSkill = tooltipSkill self.curSkillButton.SetSkillToolTip(self.tooltipSkill) ## Mouse Image def ShowMouseImage(self): self.mouseImage.SetTop() self.mouseImage.Show() def HideMouseImage(self): player.SetQuickCameraMode(FALSE) self.mouseImage.Hide() ## Gauge def RefreshStatus(self): curHP = player.GetStatus(player.HP) maxHP = player.GetStatus(player.MAX_HP) curSP = player.GetStatus(player.SP) maxSP = player.GetStatus(player.MAX_SP) curEXP = unsigned32(player.GetStatus(player.EXP)) nextEXP = unsigned32(player.GetStatus(player.NEXT_EXP)) recoveryHP = player.GetStatus(player.HP_RECOVERY) recoverySP = player.GetStatus(player.SP_RECOVERY) self.RefreshStamina() self.SetHP(curHP, recoveryHP, maxHP) self.SetSP(curSP, recoverySP, maxSP) self.SetExperience(curEXP, nextEXP) def RefreshStamina(self): curST = player.GetStatus(player.STAMINA) maxST = player.GetStatus(player.MAX_STAMINA) self.SetST(curST, maxST) def RefreshSkill(self): self.curSkillButton.RefreshSkill() for button in self.selectSkillButtonList: button.RefreshSkill() def SetHP(self, curPoint, recoveryPoint, maxPoint): curPoint = min(curPoint, maxPoint) if maxPoint > 0: self.hpGauge.SetPercentage(curPoint, maxPoint) self.tooltipHP.SetText("%s : %d / %d" % (localeInfo.TASKBAR_HP, curPoint, maxPoint)) if 0 == recoveryPoint: self.hpRecoveryGaugeBar.Hide() else: destPoint = min(maxPoint, curPoint + recoveryPoint) newWidth = int(self.GAUGE_WIDTH * (float(destPoint) / float(maxPoint))) self.hpRecoveryGaugeBar.SetSize(newWidth, self.GAUGE_HEIGHT) self.hpRecoveryGaugeBar.Show() def SetSP(self, curPoint, recoveryPoint, maxPoint): curPoint = min(curPoint, maxPoint) if maxPoint > 0: self.mpGauge.SetPercentage(curPoint, maxPoint) self.tooltipSP.SetText("%s : %d / %d" % (localeInfo.TASKBAR_SP, curPoint, maxPoint)) if 0 == recoveryPoint: self.spRecoveryGaugeBar.Hide() else: destPoint = min(maxPoint, curPoint + recoveryPoint) newWidth = int(self.GAUGE_WIDTH * (float(destPoint) / float(maxPoint))) self.spRecoveryGaugeBar.SetSize(newWidth, self.GAUGE_HEIGHT) self.spRecoveryGaugeBar.Show() def SetST(self, curPoint, maxPoint): curPoint = min(curPoint, maxPoint) if maxPoint > 0: self.stGauge.SetPercentage(curPoint, maxPoint) self.tooltipST.SetText("%s : %d / %d" % (localeInfo.TASKBAR_ST, curPoint, maxPoint)) def SetExperience(self, curPoint, maxPoint): curPoint = min(curPoint, maxPoint) curPoint = max(curPoint, 0) maxPoint = max(maxPoint, 0) quarterPoint = maxPoint / 4 FullCount = 0 if 0 != quarterPoint: FullCount = min(4, curPoint / quarterPoint) for i in xrange(4): self.expGauge[i].Hide() for i in xrange(FullCount): self.expGauge[i].SetRenderingRect(0.0, 0.0, 0.0, 0.0) self.expGauge[i].Show() if 0 != quarterPoint: if FullCount < 4: Percentage = float(curPoint % quarterPoint) / quarterPoint - 1.0 self.expGauge[FullCount].SetRenderingRect(0.0, Percentage, 0.0, 0.0) self.expGauge[FullCount].Show() ##### self.tooltipEXP.SetText("%s : %.2f%%" % (localeInfo.TASKBAR_EXP, float(curPoint) / max(1, float(maxPoint)) * 100)) ## QuickSlot def RefreshQuickSlot(self): pageNum = player.GetQuickPage() try: self.quickPageNumImageBox.LoadImage(TaskBar.QUICKPAGE_NUMBER_FILENAME[pageNum]) except: pass startNumber = 0 for slot in self.quickslot: for i in xrange(4): slotNumber = i+startNumber (Type, Position) = player.GetLocalQuickSlot(slotNumber) if player.SLOT_TYPE_NONE == Type: slot.ClearSlot(slotNumber) continue if player.SLOT_TYPE_INVENTORY == Type: itemIndex = player.GetItemIndex(Position) itemCount = player.GetItemCount(Position) if itemCount <= 1: itemCount = 0 ## 자동물약 (#72723, #72724) 특수처리 - 아이템인데도 슬롯에 활성화/비활성화 표시를 위한 작업임 - [hyo] if constInfo.IS_AUTO_POTION(itemIndex): # metinSocket - [0] : 활성화 여부, [1] : 사용한 양, [2] : 최대 용량 metinSocket = [player.GetItemMetinSocket(Position, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)] if 0 != int(metinSocket[0]): slot.ActivateSlot(slotNumber) else: slot.DeactivateSlot(slotNumber) slot.SetItemSlot(slotNumber, itemIndex, itemCount) elif player.SLOT_TYPE_SKILL == Type: skillIndex = player.GetSkillIndex(Position) if 0 == skillIndex: slot.ClearSlot(slotNumber) continue skillType = skill.GetSkillType(skillIndex) if skill.SKILL_TYPE_GUILD == skillType: skillGrade = 0 skillLevel = guild.GetSkillLevel(Position) else: skillGrade = player.GetSkillGrade(Position) skillLevel = player.GetSkillLevel(Position) slot.SetSkillSlotNew(slotNumber, skillIndex, skillGrade, skillLevel) slot.SetSlotCountNew(slotNumber, skillGrade, skillLevel) slot.SetCoverButton(slotNumber) ## NOTE : CoolTime 체크 if player.IsSkillCoolTime(Position): (coolTime, elapsedTime) = player.GetSkillCoolTime(Position) slot.SetSlotCoolTime(slotNumber, coolTime, elapsedTime) if player.IsSkillActive(Position): if not slotNumber in self.Jeaktivni: slot.ActivateSlot(slotNumber) self.Jeaktivni.append(slotNumber) else: if slotNumber in self.Jeaktivni: slot.DeactivateSlot(slotNumber) self.Jeaktivni.remove(slotNumber) elif player.SLOT_TYPE_EMOTION == Type: emotionIndex = Position slot.SetEmotionSlot(slotNumber, emotionIndex) slot.SetCoverButton(slotNumber) slot.SetSlotCount(slotNumber, 0) slot.RefreshSlot() startNumber += 4 def canAddQuickSlot(self, Type, slotNumber): if player.SLOT_TYPE_INVENTORY == Type: itemIndex = player.GetItemIndex(slotNumber) return item.CanAddToQuickSlotItem(itemIndex) return TRUE def AddQuickSlot(self, localSlotIndex): AttachedSlotType = mouseModule.mouseController.GetAttachedType() AttachedSlotNumber = mouseModule.mouseController.GetAttachedSlotNumber() AttachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex() if player.SLOT_TYPE_QUICK_SLOT == AttachedSlotType: player.RequestMoveGlobalQuickSlotToLocalQuickSlot(AttachedSlotNumber, localSlotIndex) elif player.SLOT_TYPE_EMOTION == AttachedSlotType: player.RequestAddLocalQuickSlot(localSlotIndex, AttachedSlotType, AttachedItemIndex) elif TRUE == self.canAddQuickSlot(AttachedSlotType, AttachedSlotNumber): ## Online Code player.RequestAddLocalQuickSlot(localSlotIndex, AttachedSlotType, AttachedSlotNumber) mouseModule.mouseController.DeattachObject() self.RefreshQuickSlot() def SelectEmptyQuickSlot(self, slotIndex): if TRUE == mouseModule.mouseController.isAttached(): self.AddQuickSlot(slotIndex) def SelectItemQuickSlot(self, localQuickSlotIndex): if TRUE == mouseModule.mouseController.isAttached(): self.AddQuickSlot(localQuickSlotIndex) else: globalQuickSlotIndex=player.LocalQuickSlotIndexToGlobalQuickSlotIndex(localQuickSlotIndex) mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_QUICK_SLOT, globalQuickSlotIndex, globalQuickSlotIndex) def UnselectItemQuickSlot(self, localSlotIndex): if FALSE == mouseModule.mouseController.isAttached(): player.RequestUseLocalQuickSlot(localSlotIndex) return elif mouseModule.mouseController.isAttached(): mouseModule.mouseController.DeattachObject() return def OnUseSkill(self, usedSlotIndex, coolTime): QUICK_SLOT_SLOT_COUNT = 4 slotIndex = 0 ## Current Skill Button if usedSlotIndex == self.curSkillButton.GetSlotIndex(): self.curSkillButton.Activate(coolTime) ## Quick Slot for slotWindow in self.quickslot: for i in xrange(QUICK_SLOT_SLOT_COUNT): (Type, Position) = player.GetLocalQuickSlot(slotIndex) if Type == player.SLOT_TYPE_SKILL: if usedSlotIndex == Position: slotWindow.SetSlotCoolTime(slotIndex, coolTime) return slotIndex += 1 def OnActivateSkill(self, usedSlotIndex): slotIndex = 0 ## Current Skill Button if usedSlotIndex == self.curSkillButton.GetSlotIndex(): self.curSkillButton.Deactivate() ## Quick Slot for slotWindow in self.quickslot: for i in xrange(4): (Type, Position) = player.GetLocalQuickSlot(slotIndex) if Type == player.SLOT_TYPE_SKILL: if usedSlotIndex == Position: slotWindow.ActivateSlot(slotIndex) return slotIndex += 1 def OnDeactivateSkill(self, usedSlotIndex): slotIndex = 0 ## Current Skill Button if usedSlotIndex == self.curSkillButton.GetSlotIndex(): self.curSkillButton.Deactivate() ## Quick Slot for slotWindow in self.quickslot: for i in xrange(4): (Type, Position) = player.GetLocalQuickSlot(slotIndex) if Type == player.SLOT_TYPE_SKILL: if usedSlotIndex == Position: slotWindow.DeactivateSlot(slotIndex) return slotIndex += 1 ## ToolTip def OverInItem(self, slotNumber): if mouseModule.mouseController.isAttached(): return (Type, Position) = player.GetLocalQuickSlot(slotNumber) if player.SLOT_TYPE_INVENTORY == Type: self.tooltipItem.SetInventoryItem(Position) self.tooltipSkill.HideToolTip() elif player.SLOT_TYPE_SKILL == Type: skillIndex = player.GetSkillIndex(Position) skillType = skill.GetSkillType(skillIndex) if skill.SKILL_TYPE_GUILD == skillType: skillGrade = 0 skillLevel = guild.GetSkillLevel(Position) else: skillGrade = player.GetSkillGrade(Position) skillLevel = player.GetSkillLevel(Position) self.tooltipSkill.SetSkillNew(Position, skillIndex, skillGrade, skillLevel) self.tooltipItem.HideToolTip() def OverOutItem(self): if 0 != self.tooltipItem: self.tooltipItem.HideToolTip() if 0 != self.tooltipSkill: self.tooltipSkill.HideToolTip() def OnUpdate(self): if app.GetGlobalTime() - self.lastUpdateQuickSlot > 500: self.lastUpdateQuickSlot = app.GetGlobalTime() self.RefreshQuickSlot() if TRUE == self.hpGaugeBoard.IsIn(): self.tooltipHP.Show() else: self.tooltipHP.Hide() if TRUE == self.mpGaugeBoard.IsIn(): self.tooltipSP.Show() else: self.tooltipSP.Hide() if TRUE == self.stGaugeBoard.IsIn(): self.tooltipST.Show() else: self.tooltipST.Hide() if TRUE == self.expGaugeBoard.IsIn(): self.tooltipEXP.Show() else: self.tooltipEXP.Hide() ## Skill def ToggleLeftMouseButtonModeWindow(self): wndMouseButtonMode = self.mouseModeButtonList[self.MOUSE_BUTTON_LEFT] if TRUE == wndMouseButtonMode.IsShow(): wndMouseButtonMode.Hide() else: wndMouseButtonMode.Show() def ToggleRightMouseButtonModeWindow(self): wndMouseButtonMode = self.mouseModeButtonList[self.MOUSE_BUTTON_RIGHT] if TRUE == wndMouseButtonMode.IsShow(): wndMouseButtonMode.Hide() self.CloseSelectSkill() else: wndMouseButtonMode.Show() self.OpenSelectSkill() def OpenSelectSkill(self): PAGE_SLOT_COUNT = 6 (xSkillButton, y) = self.curSkillButton.GetGlobalPosition() y -= (37 + 32 + 1) for key in self.skillCategoryNameList: appendCount = 0 startNumber = self.skillPageStartSlotIndexDict[key] x = xSkillButton getSkillIndex=player.GetSkillIndex getSkillLevel=player.GetSkillLevel for i in xrange(PAGE_SLOT_COUNT): skillIndex = getSkillIndex(startNumber+i) skillLevel = getSkillLevel(startNumber+i) if 0 == skillIndex: continue if 0 == skillLevel: continue if skill.IsStandingSkill(skillIndex): continue ## FIXME : 스킬 하나당 슬롯 하나씩 할당하는건 아무리 봐도 부하가 크다. ## 이 부분은 시간을 나면 고치도록. - [levites] skillButton = self.SkillButton() skillButton.SetSkill(startNumber+i) skillButton.SetPosition(x, y) skillButton.SetSkillEvent(ui.__mem_func__(self.CloseSelectSkill), startNumber+i+1) skillButton.SetSkillToolTip(self.tooltipSkill) skillButton.SetTop() skillButton.Show() self.selectSkillButtonList.append(skillButton) appendCount += 1 x -= 32 if appendCount > 0: y -= 32 def CloseSelectSkill(self, slotIndex=-1): self.mouseModeButtonList[self.MOUSE_BUTTON_RIGHT].Hide() for button in self.selectSkillButtonList: button.Destroy() self.selectSkillButtonList = [] self.Jeaktivni = [] if -1 != slotIndex: self.curSkillButton.Show() self.curMouseModeButton[self.MOUSE_BUTTON_RIGHT].Hide() player.SetMouseFunc(player.MBT_RIGHT, player.MBF_SKILL) player.ChangeCurrentSkillNumberOnly(slotIndex-1) else: self.curSkillButton.Hide() self.curMouseModeButton[self.MOUSE_BUTTON_RIGHT].Show() def SelectMouseButtonEvent(self, dir, event): SetMouseButtonSetting(dir, event) self.CloseSelectSkill() self.mouseModeButtonList[dir].Hide() btn = 0 type = self.NONE func = self.NONE tooltip_text = "" if self.MOUSE_BUTTON_LEFT == dir: type = player.MBT_LEFT elif self.MOUSE_BUTTON_RIGHT == dir: type = player.MBT_RIGHT if self.EVENT_MOVE == event: btn = self.mouseModeButtonList[dir].GetChild("button_move") func = player.MBF_MOVE tooltip_text = localeInfo.TASKBAR_MOVE elif self.EVENT_ATTACK == event: btn = self.mouseModeButtonList[dir].GetChild("button_attack") func = player.MBF_ATTACK tooltip_text = localeInfo.TASKBAR_ATTACK elif self.EVENT_AUTO == event: btn = self.mouseModeButtonList[dir].GetChild("button_auto_attack") func = player.MBF_AUTO tooltip_text = localeInfo.TASKBAR_AUTO elif self.EVENT_MOVE_AND_ATTACK == event: btn = self.mouseModeButtonList[dir].GetChild("button_move_and_attack") func = player.MBF_SMART tooltip_text = localeInfo.TASKBAR_ATTACK elif self.EVENT_CAMERA == event: btn = self.mouseModeButtonList[dir].GetChild("button_camera") func = player.MBF_CAMERA tooltip_text = localeInfo.TASKBAR_CAMERA elif self.EVENT_SKILL == event: btn = self.mouseModeButtonList[dir].GetChild("button_skill") func = player.MBF_SKILL tooltip_text = localeInfo.TASKBAR_SKILL if 0 != btn: self.curMouseModeButton[dir].SetToolTipText(tooltip_text, 0, -18) self.curMouseModeButton[dir].SetUpVisual(btn.GetUpVisualFileName()) self.curMouseModeButton[dir].SetOverVisual(btn.GetOverVisualFileName()) self.curMouseModeButton[dir].SetDownVisual(btn.GetDownVisualFileName()) self.curMouseModeButton[dir].Show() player.SetMouseFunc(type, func) def OnChangeCurrentSkill(self, skillSlotNumber): self.curSkillButton.SetSkill(skillSlotNumber) self.curSkillButton.Show() self.curMouseModeButton[self.MOUSE_BUTTON_RIGHT].Hide() ########Anti Exp Button by Sanii########## def AntiExp(self): import constInfo import event import DwNvkx483KsvcQbnuCNjCmDLRvgNq3Hn as net qid = constInfo.ANTI_EXP state = constInfo.ANTI_EXP_STATE if state == 0: self.antiexp.SetText("-") self.antiexp.SetToolTipText("Anti-Erfahrung deaktivieren") event.QuestButtonClick(qid) else: self.antiexp.SetText("+") self.antiexp.SetToolTipText("Anti-Erfahrung aktivieren") event.QuestButtonClick(qid) ##########################################
×
×
  • 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.