Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 06/05/2021 in all areas

  1. 53 points
    Cześć ;] Ostatnio chciałem dodać sobie wyświetlanie rosek w lewym górnym rogu, ale stwierdziłem, że sposób dostępny w internecie (przez dodawanie nowych affectów) jest po prostu ch*jowy, bo po co dodawać więcej i więcej affectów, i przy tym modyfikować kod źródłowy, gdy można to zrobić inaczej. Nie chce mi się tego dzielić na różne elementy w temacie, dlatego cały tutorial dam Wam w jednym "załączniku" jeśli tak mogę to nazwać. # Dodajemy do locale_game.txt: TOOLTIP_CZERWONA_ROSA Czerwona Rosa - Szansa na cios krytyczny SNA TOOLTIP_ZOLTA_ROSA Żółta Rosa - Szybkość Ataku SNA TOOLTIP_NIEBIESKA_ROSA Niebieska Rosa - Wartość Ataku SNA TOOLTIP_BIALA_ROSA Biała Rosa - Obrona SNA TOOLTIP_POMARANCZOWA_ROSA Pomarańczowa Rosa - Szansa na przeszywające Uderzenie SNA TOOLTIP_ZIELONA_ROSA Zielona Rosa - Max PŻ SNA # Plik: uiAffectShower.py # Szukamy: AFFECT_DATA_DICT = { # Dodajemy wyżej: AFFECT_BLEND_CONFIG = { # pointIdx : ( localeInfo.OPIS_NASZEJ_ROSY, "sciezka/do/ikony/ikona.tga"), 40 : ( localeInfo.TOOLTIP_CZERWONA_ROSA, "icon/item/50821.tga"), 41 : ( localeInfo.TOOLTIP_POMARANCZOWA_ROSA, "icon/item/50822.tga"), 17 : ( localeInfo.TOOLTIP_ZOLTA_ROSA, "icon/item/50823.tga"), 6 : ( localeInfo.TOOLTIP_ZIELONA_ROSA, "icon/item/50824.tga"), 95 : ( localeInfo.TOOLTIP_NIEBIESKA_ROSA, "icon/item/50825.tga"), 96 : ( localeInfo.TOOLTIP_BIALA_ROSA, "icon/item/50826.tga"), } # Szukamy: def BINARY_NEW_AddAffect(self, type, pointIdx, value, duration): # Dodajemy wyżej: def IsBlendAffect(self, type): return (type == 531) # 531 to index jaki u mnie mają rosy i należy ustawić go pod siebie (bo u kogoś może być inaczej niż u mnie). # Szukamy: if type == chr.NEW_AFFECT_MALL: affect = self.MALL_DESC_IDX_START + pointIdx else: affect = type # Zmieniamy na (bo tak...): if type == chr.NEW_AFFECT_MALL: affect = self.MALL_DESC_IDX_START + pointIdx elif self.IsBlendAffect(type): affect = 2000 + pointIdx else: affect = type # Szukamy: affectData = self.AFFECT_DATA_DICT[affect] description = affectData[0] # Zmieniamy na: affectData = None if self.IsBlendAffect(type): affectData = self.AFFECT_BLEND_CONFIG[pointIdx] else: if self.AFFECT_DATA_DICT.has_key(affect): affectData = self.AFFECT_DATA_DICT[affect] else: return description = affectData[0] # Szukamy: def BINARY_NEW_RemoveAffect(self, type, pointIdx): if type == chr.NEW_AFFECT_MALL: affect = self.MALL_DESC_IDX_START + pointIdx else: affect = type # Zmieniamy na (bo tak...): def BINARY_NEW_RemoveAffect(self, type, pointIdx): if type == chr.NEW_AFFECT_MALL: affect = self.MALL_DESC_IDX_START + pointIdx elif self.IsBlendAffect(type): affect = 2000 + pointIdx else: affect = type I teraz tak... Dla osób, które nieco mniej ogarniają. Aby poprawnie skonfigurować sobie wyświetlanie ikonek polecam skorzystać jeszcze z tego: # Żeby sprawdzić pointIdx należy znaleźć: def BINARY_NEW_AddAffect(self, type, pointIdx, value, duration): # A następnie dodać niżej: chat.AppendChat(chat.CHAT_TYPE_INFO, "Affect Index: {}, pointIndex: {}".format(affect, pointIdx)) Po wprowadzeniu tej modyfikacji w momencie, gdy użyjemy przedmiotu który nadaje na postać jakiś affect pokaże się na czacie informacja o indexie danego affectu oraz o rodzaju punktów (bonusie) jaki daje on naszej postaci. Index rodzaju punktów (bonusu) jest nam potrzebny do skonfigurowania tej "tablicy", która wykorzystana jest w kodzie. Jeśli czegoś będzie brakować lub będzie niejasne to piszcie w temacie. Enjoy!
  2. 20 points
    They are useful and it is worth having them at hand. (I am not the author) 250 Belt Icons.rar
  3. 14 points
    Cześć to znowu ja, tym razem przynoszę dla was gotową maszynę, pliki, klienta i source od owsapa. Wystarczy wgrać i włączyć serwer. Miłej zabawy Dane : Mysql Login - boss Haslo - password Vbox Login - root Haslo - password Dane do konta żeby się zalogować i ogarnąć czy działa Login - Boss Haslo - 123 Co zostało zmienione względem paczki, która jest na forum macie opisane tutaj Przerobiono lekko binke, żeby się kompilowała na vs2019 Dodano czytanie mysql z bazy (NOTXT) Dodano komendę /start /stop /qc już nie trzeba wchodzic do katalogu Poprawiono mounty/pety/kostiumy na broń [ było złe type i subtype ] Spolszczona parę rzeczy z interface (Czego multilang nie obejmuje) Dodano 100% Polską bazę Item_proto i poprawiono [ Była Angielska ] Przeniesiono locale do root Ogólnie pliki są gotowe do odpalenia Kompilacja Source i najważniejsze rzeczy w nim Kompilacja cd /usr/home/official_web/src/Server gmake all --------------------------------------------------------- #define _IMPROVED_PACKET_ENCRYPTION_ #define __PET_SYSTEM__ #define __UDP_BLOCK__ #define __ALIGNMENT_AFFECT__ // Alignment affect /// OSF_WORK #define __WOLFMAN_CHARACTER__ // Wolfman character #ifdef __WOLFMAN_CHARACTER__ // #define __DISABLE_WOLFMAN_CREATION__ // Disable Wolfman creation #define __PLAYER_PER_ACCOUNT5__ // Enable 5 players per account #endif #define __SWAP_ITEM_SYSTEM__ // Swap items between inventory slots #define __SORT_INVENTORY_ITEMS__ // Sorts all inventory items #define __ITEM_DROP_RENEWAL__ // Item drop renewal #define __INVENTORY_4PAGES__ // 4 inventory pages #define __SPECIAL_INVENTORY_SYSTEM__ // Special inventory #define __MINI_GAME_OKEY__ // Mini game okey/runi #define __MINI_GAME_CATCH_KING__ // Mini game catch king #define __SEND_TARGET_INFO__ // Monster target information #define __SEND_TARGET_ELEMENT__ // Target element #define __7AND8TH_SKILLS__ // 7 and 8th skill #define __NEW_BLEND_AFFECT__ // New blend affect #define __12ZI_NOTICE__ // 12ZI mission notice #define __NEW_DROP_DIALOG__ // New drop dialog with remove item option #define __GUILD_LEADER_GRADE_NAME__ // Shows guild leader grade name on text tail #define __MESSENGER_BLOCK_SYSTEM__ // Messenger block list #define __MESSENGER_GM__ // Messenger gm list #define __VIEW_TARGET_DECIMAL_HP__ // View targets decimal hp #ifdef __VIEW_TARGET_DECIMAL_HP__ #define __VIEW_TARGET_PLAYER_HP__ // View target players' hp #endif #define __QUIVER_SYSTEM__ // Ninja quiver #define __IGNORE_LOW_POWER_BUFF__ // Ignore low power buff #define __CHANGE_LOOK_SYSTEM__ // Change look of item #define __HIDE_COSTUME_SYSTEM__ // Hide costume part #define __OFFLINE_PRIVATE_SHOP_SYSTEM__ // Offline private shop #define __DUNGEON_INFO_SYSTEM__ // Dungeons informations #define __EXPRESSING_EMOTIONS__ // Special actions & emotions #define __GENDER_ALIGNMENT__ // Gender alignment #define __REFINE_FAIL_TYPE__ // Extended refine fail message #define __GACHA_SYSTEM__ // Gacha boxes (x use time) #define __ELEMENT_SYSTEM__ // Elements of monsters and pendants #define __PENDANT_SYSTEM__ // Talismans of elements // #define __USE_SINGLE_ADD_ATTRIBUTE__ // Use single add attribute #define __MAGIC_REDUCTION__ // Magic Reduction #define __EXTENDED_ITEM_AWARD__ // Extended item award #define __GROWTH_PET_SYSTEM__ // Growth pet system #define __SPECIAL_PVP_DUEL_OPTION__ // Special PvP duel with arguments (without critcal, penetration, posion and others...) #define __FLAG_IMAGE_SHOUT_LINE__ // Display's kingdoom flag in shout line #define __SOUL_BIND_SYSTEM__ // Soul bind items #define __QUEST_RENEWAL__ // Quest renewal with categories #define __AUTO_BLEND_AFFECT__ // Auto blend item affect #define __ANTI_EXP_RING__ // Anti experience ring #define __MOVE_CHANNEL__ // Move channel system #define __MAILBOX_SYSTEM__ // Mailbox system #if defined(__MAILBOX_SYSTEM__) #define _PORTABLE_MAILBOX_ // Portable Mailbox system (open anywhere) #endif #define __SHOPEX_RENEWAL__ // ShopEX renewal #ifdef __SHOPEX_RENEWAL__ #define __SHOPEX_TAB4__ // ShopEX 4 tabs #endif #define __SOUL_SYSTEM__ // Soul system #define __SKILL_COLOR_SYSTEM__ // Skill color system #define __DS_GRADE_MYTH__ // Dragon soul mythical grade #define __PRIVATE_SHOP_SEARCH_SYSTEM__ // Search private shop items #ifdef __PRIVATE_SHOP_SEARCH_SYSTEM__ #define __PRIVATE_SHOP_SEARCH_NEED_ITEM__ // Require special search item #endif #define __EXTENDED_DSS_RECHARGE__ // Dragon soul extended recharge #define __EXTENDED_ITEM_COUNT__ // Extend the amount of items #define __ITEM_SOCKET5__ // Extend item sockets #define __EXTENDED_BLEND__ // Extened blend affect #define __STONE_OF_BLESS__ // New refine item #define __DICE_SYSTEM__ // New dice system #define __DS_SET__ // Dragon soul handle bonus #define __MULTI_LANGUAGE_SYSTEM__ // Multi language system #define __EXTENDED_COSTUME_RECHARGE__ // Costume extended recharge #define __BATTLE_PASS_SYSTEM__ // Battle pass system #define __PLAYER_PIN_SYSTEM__ // Player PIN Code #define __SKILLBOOK_COMB_SYSTEM__ // Skill book combination #define __ATTR_SWITCH_SYSTEM__ // Attribute switcher (switch bot) #define __EXTENDED_WHISPER_DETAILS__ // Extended whisper details // #define __ITEM_POWER_SYSTEM__ // Item power #define __CHANNEL_STATUS_UPDATE__ // Channel player count #define _IMPROVED_LOGOUT_POINTS_ // Improved update packet on logout #define __DISABLE_SEND_SEQUENCE__ // Disable sequence // #define __ALLOW_EXTERNAL_PEER__ // Allow external peer API #define __SKILL_COOLTIME_UPDATE__ // Refresh skill cooldown after death /// WJ_WORK #define __WJ_SHOW_MOB_INFO__ // Show monster aggregate flag and level #define __WJ_PICKUP_ITEM_EFFECT__ // Pickup item effect #define __WJ_NEW_USER_CARE__ // User care /// Costume Systems #define __COSTUME_SYSTEM__ // Costume system #define __MOUNT_COSTUME_SYSTEM__ // Mount costume system #define __ACCE_COSTUME_SYSTEM__ // Sash costume system #define __WEAPON_COSTUME_SYSTEM__ // Weapon costume system #define __COSTUME_ATTR_SYSTEM__ // Costume attribute switchers /// Cheque & Gem System #define __CHEQUE_SYSTEM__ // Won #define __GEM_SYSTEM__ // Gem #if defined(__GEM_SYSTEM__) #define __GEM_MARKET_SYSTEM__ // Gem Market #endif /// Dungeons #define __GUILD_DRAGONLAIR_PARTY_SYSTEM__ // Guild dragon lair party system #ifdef __GUILD_DRAGONLAIR_PARTY_SYSTEM__ #define __GUILD_DRAGONLAIR__ // Guild dragon lair dungeon #ifdef __GUILD_DRAGONLAIR__ #define GUILD_DRAGONLAIR_DESTROY_STATUE_GM #define GUILD_DRAGONLAIR_LAZER_EFFECT_75HP #define GUILD_DRAGONLAIR_LAZER_EFFECT_50HP #endif #endif #define __TEMPLE_OCHAO__ // Temple of the Ochao #ifdef __TEMPLE_OCHAO__ #define TEMPLE_OCHAO_MAP_INDEX 353 #define TEMPLE_OCHAO_GUARDIAN 6405 #define TEMPLE_OCHAO_PORTAL 20415 #endif #define __EREBUS_DUNGEON__ // Erebus dungeon #ifdef __EREBUS_DUNGEON__ #define EREBUS_FINAL_BOSS 6192 #define EREBUS_HEALER 6409 #endif #endif Download Maszyna [Hidden Content] Klient [Hidden Content] Source Klienta [Hidden Content]
  4. 11 points
    Siema dawno temu kupiłem to od Shanga jeśli kiedykolwiek to było lub gdzieś jest juz udostępnione to wywalcie Nie mam screenów system testowany na moich plikach Verti które udostępniłem i działa 1000% [Hidden Content] Skan: Spolszczenie locale_game.txt TICKET_PRIORITY_HIGH Wysoki TICKET_PRIORITY_MEDIUM Średni TICKET_PRIORITY_LOW Niski TICKET_STATE_ON_HOLD W procesie TICKET_STATE_CLOSED Zamknięte TICKET_STATE_SOLVED Rozwiązany TICKET_ADD_NAME Nazwa: TICKET_ADD_TITLE Dodaćj członka TICKET_ADD_ACCEPT Akceptuj TICKET_SEND Wyślij TICKET_TITLE System Zgłoszeń TICKET_MY_TICKETS Moje Zgłoszenia TICKET_ADMINISTRATION Administrator TICKET_SORT_BY Sortuj według: TICKET_ID ID TICKET_TITLE_T Tytuł TICKET_PRIORITY Priorytet TICKET_DATE Data TICKET_STATE Stan TICKET_CREATE_NEW Utwórz nowe zgłoszenie TICKET_SEARCH Szukaj ID: TICKET_SEARCH_BUTTON Szukaj TICKET_NAME Nazwa TICKET_ANSWER Odpowiedź TICKET_DELETE Usuń członka TICKET_CHANGE_PERMISIONS Modyfikowania Uprawnień TICKET_ADD_MEMBER Dodaj nowego członka TICKET_REFRESH Odśwież TICKET_CATEGORY Kategorie TICKET_CATEGORY_0 Wszystko Spolszczenie uiticket.txt import ui import grp import chat import constInfo import event import localeInfo import pythonApi player = __import__(pythonApi.GetModuleName("player")) app = __import__(pythonApi.GetModuleName("app")) from _weakref import proxy CATEGORIES = [ localeInfo.TICKET_CATEGORY_0, 'Sugestie', 'Bugi', 'Hacki', 'Inne', ] class TicketWindow(ui.ScriptWindow): def __init__(self): ui.ScriptWindow.__init__(self) self.isLoaded = FALSE def __del__(self): ui.ScriptWindow.__del__(self) def __LoadWindow(self): try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, "uiscript/TicketWindow.py") except: import exception exception.Abort("TicketWindow.__LoadWindow.LoadObject") self.pages = ['MY_TICKETS', 'ADMINISTRATOR'] self.priority_levels = [localeInfo.TICKET_PRIORITY_LOW, localeInfo.TICKET_PRIORITY_MEDIUM, localeInfo.TICKET_PRIORITY_HIGH] self.sort = [localeInfo.TICKET_DATE, localeInfo.TICKET_STATE, localeInfo.TICKET_PRIORITY] self.tmpID = '' self.myticketsPos = 0 self.globalticketsPos = 0 self.permisionsPos = 0 self.priority = 0 self.category = 0 self.curPage = self.pages[0] self.curCategory = 0 self.lastSort = 0 self.isGM = FALSE self.lastSaw = '' self.sortedList = [] self.isSorting = FALSE self.__BindObjects() self.__BindEvents() self.isLoaded = TRUE def __BindObjects(self): self.board = self.GetChild('board') for i in xrange(2): self.GetChild('btnpage%d' % (i+1)).SetEvent(ui.__mem_func__(self.SelectPage), self.pages[i]) self.elements = { 'listboxes' : {'my_tickets' : self.GetChild('my_tickets_listbox'), 'admin' : self.GetChild('admin_listbox')}, 'scrollbars' : {'my_tickets' : self.GetChild('my_tickets_scrollbar'), 'admin' : self.GetChild('admin_scrollbar'), 'permisions' : self.GetChild('permisions_scrollbar')}, 'editlines' : {'create_ticket' : {'title' : self.GetChild('create_ticket_title_value'), 'msg' : self.GetChild('create_ticket_msg')}, 'search' : self.GetChild('search_value')}, 'comboboxes' : {'create_ticket' : 0, 'sort' : 0}, 'buttons' : {'create_ticket' : 0, 'add_member' : self.GetChild('permisions_add_member'), 'search' : self.GetChild('search_button')}, 'priorities' : {}, 'unique_ticket' : TicketManage(), 'add_member' : AddMember(), } for i in xrange(7): self.elements.update({'permision_%d' % i: PermisionManage()}) self.elements['comboboxes']['create_ticket'] = ui.ComboBox() self.elements['comboboxes']['create_ticket'].SetParent(self.GetChild('create_ticket_bg')) self.elements['comboboxes']['create_ticket'].SetSize(55, 15) self.elements['comboboxes']['create_ticket'].SetPosition(78, 46) self.elements['comboboxes']['create_ticket'].SetWindowHorizontalAlignRight() self.elements['comboboxes']['create_ticket'].SetEvent(self.SelectPriority) self.elements['comboboxes']['create_ticket'].Show() self.elements['comboboxes']['create_ticket_category'] = ui.ComboBox() self.elements['comboboxes']['create_ticket_category'].SetParent(self.GetChild('create_ticket_bg')) self.elements['comboboxes']['create_ticket_category'].SetSize(90, 15) self.elements['comboboxes']['create_ticket_category'].SetPosition(245, 46) self.elements['comboboxes']['create_ticket_category'].SetWindowHorizontalAlignRight() self.elements['comboboxes']['create_ticket_category'].SetEvent(self.SelectCategorySend) self.elements['comboboxes']['create_ticket_category'].Show() self.elements['comboboxes']['sort'] = ui.ComboBox() self.elements['comboboxes']['sort'].SetParent(self.GetChild('board')) self.elements['comboboxes']['sort'].SetSize(65, 18) self.elements['comboboxes']['sort'].SetPosition(34+55, 35) self.elements['comboboxes']['sort'].SetWindowHorizontalAlignRight() self.elements['comboboxes']['sort'].SetEvent(self.SelectSort) self.elements['comboboxes']['sort'].Show() self.elements['comboboxes']['categories'] = ui.ComboBox() self.elements['comboboxes']['categories'].SetParent(self.GetChild('board')) self.elements['comboboxes']['categories'].SetSize(100, 18) self.elements['comboboxes']['categories'].SetPosition(180+68+14, 35) self.elements['comboboxes']['categories'].SetWindowHorizontalAlignRight() self.elements['comboboxes']['categories'].SetEvent(self.SelectCategory) self.elements['comboboxes']['categories'].Show() self.elements['buttons']['create_ticket'] = ui.CoolButton() self.elements['buttons']['create_ticket'].SetParent(self.GetChild('create_ticket_bg_msg2')) self.elements['buttons']['create_ticket'].SetSize(95, 50) self.elements['buttons']['create_ticket'].SetPosition(102, 0) self.elements['buttons']['create_ticket'].SetWindowHorizontalAlignRight() self.elements['buttons']['create_ticket'].SetWindowVerticalAlignCenter() self.elements['buttons']['create_ticket'].SetEvent(ui.__mem_func__(self.SendTicket)) self.elements['buttons']['create_ticket'].SetText(localeInfo.TICKET_SEND) self.elements['buttons']['create_ticket'].Show() idx = 0 for prty in self.priority_levels: self.elements['comboboxes']['create_ticket'].InsertItem(idx, prty) idx += 1 idx = 0 for obj in self.sort: self.elements['comboboxes']['sort'].InsertItem(idx, obj) idx += 1 idx = 0 for cat in CATEGORIES: self.elements['comboboxes']['categories'].InsertItem(idx, cat) idx += 1 for i in xrange(len(CATEGORIES)-1): self.elements['comboboxes']['create_ticket_category'].InsertItem(i, CATEGORIES[i+1]) def __BindEvents(self): self.board.SetCloseEvent(ui.__mem_func__(self.Close)) self.elements['comboboxes']['create_ticket'].SelectItem(0) self.elements['comboboxes']['create_ticket_category'].SelectItem(0) self.elements['editlines']['create_ticket']['title'].SetReturnEvent(ui.__mem_func__(self.elements['editlines']['create_ticket']['msg'].SetFocus)) self.elements['editlines']['create_ticket']['title'].SetTabEvent(ui.__mem_func__(self.elements['editlines']['create_ticket']['msg'].SetFocus)) self.elements['editlines']['create_ticket']['msg'].SetTabEvent(ui.__mem_func__(self.elements['editlines']['create_ticket']['title'].SetFocus)) self.elements['editlines']['create_ticket']['title'].SetEscapeEvent(ui.__mem_func__(self.Close)) self.elements['editlines']['create_ticket']['msg'].SetEscapeEvent(ui.__mem_func__(self.Close)) self.elements['editlines']['search'].SetEscapeEvent(ui.__mem_func__(self.Close)) self.elements['unique_ticket'].Open(self.GetChild('window3'), 1, 5) self.elements['unique_ticket'].SetCloseEvent(self.Close) self.elements['listboxes']['my_tickets'].SetSelectEvent(self.SelectMyTicket) self.elements['scrollbars']['my_tickets'].SetScrollEvent(self.__OnScrollMyTickets) self.elements['listboxes']['admin'].SetSelectEvent(self.SelectGlobalTicket) self.elements['scrollbars']['admin'].SetScrollEvent(self.__OnScrollGlobalTickets) self.elements['scrollbars']['permisions'].SetScrollEvent(self.__OnScrollPermisions) for i in xrange(7): self.elements['permision_%d' % i].Open(self.GetChild('permisions_bg'), 0, 10+20*i) self.elements['permision_%d' % i].SetWindowHorizontalAlignCenter() self.elements['buttons']['add_member'].SetEvent(ui.__mem_func__(self.__OnClickAddMember)) self.elements['add_member'].Open(self.board, 0, -20) self.elements['add_member'].SetWindowHorizontalAlignCenter() self.elements['add_member'].SetWindowVerticalAlignCenter() self.elements['add_member'].Hide() self.elements['buttons']['search'].SetEvent(ui.__mem_func__(self.SelectFoundTicket)) self.elements['comboboxes']['sort'].SelectItem(0) def Close(self): constInfo.Tickets['QCMD'] = 'CLOSE#' event.QuestButtonClick(constInfo.Tickets['QID']) self.Hide() def Destroy(self): self.Close() self.ClearDictionary() def OnPressEscapeKey(self): self.Close() return TRUE def RequestOpen(self): constInfo.Tickets['QCMD'] = 'OPEN#' event.QuestButtonClick(constInfo.Tickets['QID']) def Open(self, mode): if not self.isLoaded: self.__LoadWindow() if mode == 1: self.SetGmMode() else: self.SetPlayerMode() self.RefreshMode() self.SelectPage('MY_TICKETS') self.SetCenterPosition() self.SetTop() self.Show() def SetPlayerMode(self): self.isGM = FALSE self.GetChild('btnpage2').Hide() def SetGmMode(self): self.isGM = TRUE self.GetChild('btnpage2').Show() def RefreshMode(self): if self.IsMember(): self.SetGmMode() else: self.SetPlayerMode() self.elements['unique_ticket'].SetGMLevel(self.isGM) def IsMember(self): for i in xrange(len(constInfo.Tickets['PERMISIONS'])): if constInfo.Tickets['PERMISIONS'][i][0] == player.GetName(): return TRUE return FALSE def SelectPage(self, pageName): for i in xrange(2): self.GetChild('btnpage%d' % (i+1)).SetUp() for i in xrange(3): self.GetChild('window%d' % (i+1)).Hide() self.curPage = pageName self.elements['add_member'].Hide() self.isSorting = FALSE idx = 1 if pageName == 'MY_TICKETS': self.myticketsPos = 0 self.SelectSort(0) self.elements['comboboxes']['sort'].SelectItem(self.lastSort) self.RefreshMyTickets() self.ResetTicket() self.elements['comboboxes']['categories'].Hide() idx = 1 elif pageName == 'ADMINISTRATOR': self.globalticketsPos = 0 self.elements['editlines']['search'].SetText('') self.elements['comboboxes']['categories'].Show() self.elements['comboboxes']['categories'].Enable() self.SelectCategory(self.curCategory) self.RefreshPermisions() idx = 2 elif pageName == 'SHOW_TICKET': idx = 3 self.GetChild('window%d' % idx).Show() return self.GetChild('btnpage%d' % idx).Down() self.GetChild('window%d' % idx).Show() def RefreshPage(self): self.RefreshMode() if self.curPage == 'SHOW_TICKET': self.RefreshSelectedTicket() return if self.curPage == 'ADMINISTRATOR' and not self.isGM: self.SelectPage('MY_TICKETS') return self.SelectPage(self.curPage) def RefreshMyTickets(self): self.elements['listboxes']['my_tickets'].RemoveAllItems() for i in xrange(min(len(constInfo.Tickets['MY_TICKETS']), 11)): if self.isSorting: curTicket = self.sortedList[self.myticketsPos + i] else: curTicket = constInfo.Tickets['MY_TICKETS'][self.myticketsPos + i] self.elements['listboxes']['my_tickets'].AppendItem(TicketInfo(curTicket[0], curTicket[1], curTicket[2], curTicket[3], curTicket[5])) if len(constInfo.Tickets['MY_TICKETS']) <= 11: self.elements['scrollbars']['my_tickets'].Hide() else: self.elements['scrollbars']['my_tickets'].SetMiddleBarSize(float(11)/float(len(constInfo.Tickets['MY_TICKETS']))) self.elements['scrollbars']['my_tickets'].Show() def __OnScrollMyTickets(self): myticketslen = len(constInfo.Tickets['MY_TICKETS']) self.myticketsPos = int(self.elements['scrollbars']['my_tickets'].GetPos() * (myticketslen-11)) self.RefreshMyTickets() def __OnScrollGlobalTickets(self): globalticketslen = len(constInfo.Tickets['GLOBAL_TICKETS']) self.globalticketsPos = int(self.elements['scrollbars']['admin'].GetPos() * (globalticketslen-10)) self.RefreshGlobalTickets() def __OnScrollPermisions(self): permisionslen = len(constInfo.Tickets['PERMISIONS']) self.permisionsPos = int(self.elements['scrollbars']['permisions'].GetPos() * (permisionslen-7)) self.RefreshPermisions() def RefreshGlobalTickets(self): self.elements['listboxes']['admin'].RemoveAllItems() if self.isSorting: TicketList = self.sortedList else: TicketList = self.GetCategoryTickets(self.curCategory) for i in xrange(min(len(TicketList), 10)): curTicket = TicketList[self.globalticketsPos + i] self.elements['listboxes']['admin'].AppendItem(TicketInfo(curTicket[0], curTicket[1], curTicket[2], curTicket[3], curTicket[5])) if len(TicketList) <= 10: self.elements['scrollbars']['admin'].Hide() else: self.elements['scrollbars']['admin'].SetMiddleBarSize(float(10)/float(len(TicketList))) self.elements['scrollbars']['admin'].Show() def RefreshPermisions(self): for i in xrange(7): self.elements['permision_%d' % i].Hide() try: for i in xrange(min(len(constInfo.Tickets['PERMISIONS']), 7)): curPermision = constInfo.Tickets['PERMISIONS'][i + self.permisionsPos] self.elements['permision_%d' % i].SetPermisionName(curPermision[0]) if curPermision[1] == 0: self.elements['permision_%d' % i].AnswerCheckBox.SetCheck(FALSE) else: self.elements['permision_%d' % i].AnswerCheckBox.SetCheck(TRUE) if curPermision[2] == 0: self.elements['permision_%d' % i].DeleteCheckBox.SetCheck(FALSE) else: self.elements['permision_%d' % i].DeleteCheckBox.SetCheck(TRUE) if curPermision[3] == 0: self.elements['permision_%d' % i].AddCheckBox.SetCheck(FALSE) else: self.elements['permision_%d' % i].AddCheckBox.SetCheck(TRUE) if i + self.permisionsPos == 0: self.elements['permision_%d' % i].AddCheckBox.Disable() self.elements['permision_%d' % i].DeleteCheckBox.Disable() self.elements['permision_%d' % i].AnswerCheckBox.Disable() self.elements['permision_%d' % i].Show() except: self.elements['scrollbars']['permisions'].Hide() return if len(constInfo.Tickets['PERMISIONS']) <= 7: self.elements['scrollbars']['permisions'].Hide() else: self.elements['scrollbars']['permisions'].SetMiddleBarSize(float(7)/float(len(constInfo.Tickets['PERMISIONS']))) self.elements['scrollbars']['permisions'].Show() def SelectMyTicket(self, idx): if self.isSorting: curTicket = self.sortedList[self.elements['listboxes']['my_tickets'].GetItemIndex(idx) + self.myticketsPos] else: curTicket = constInfo.Tickets['MY_TICKETS'][self.elements['listboxes']['my_tickets'].GetItemIndex(idx) + self.myticketsPos] self.tmpID = curTicket[0] self.elements['unique_ticket'].SetContent(curTicket[0], curTicket[1], curTicket[2], curTicket[3], curTicket[4], curTicket[5], curTicket[6], curTicket[7]) self.elements['comboboxes']['categories'].Show() self.elements['comboboxes']['categories'].Disable() self.elements['comboboxes']['categories'].SetCurrentItem(CATEGORIES[curTicket[8]]) self.SelectPage('SHOW_TICKET') def SelectGlobalTicket(self, idx): if self.isSorting: curTicket = self.sortedList[self.elements['listboxes']['admin'].GetItemIndex(idx) + self.globalticketsPos] else: curTicket = self.GetCategoryTickets(self.curCategory)[self.elements['listboxes']['admin'].GetItemIndex(idx) + self.globalticketsPos] self.tmpID = curTicket[0] self.elements['unique_ticket'].SetContent(curTicket[0], curTicket[1], curTicket[2], curTicket[3], curTicket[4], curTicket[5], curTicket[6], curTicket[7]) self.SelectPage('SHOW_TICKET') def SelectFoundTicket(self, tid = ''): id = self.elements['editlines']['search'].GetText() if tid == '' else tid selected = -1 for i in xrange(len(constInfo.Tickets['GLOBAL_TICKETS'])): if constInfo.Tickets['GLOBAL_TICKETS'][i][0] == id: selected = i break if selected == -1: chat.AppendChat(chat.CHAT_TYPE_INFO, '[System Zgłoszeń] Nie znaleziono żadnego bilet z identyfikatorem %s.' % id) return curTicket = constInfo.Tickets['GLOBAL_TICKETS'][selected] self.tmpID = curTicket[0] self.elements['unique_ticket'].SetContent(curTicket[0], curTicket[1], curTicket[2], curTicket[3], curTicket[4], curTicket[5], curTicket[6], curTicket[7]) self.elements['comboboxes']['categories'].Show() self.elements['comboboxes']['categories'].Disable() self.elements['comboboxes']['categories'].SetCurrentItem(CATEGORIES[curTicket[8]]) self.SelectPage('SHOW_TICKET') def RefreshSelectedTicket(self): self.SelectFoundTicket(self.tmpID) def SelectPriority(self, priority): self.elements['comboboxes']['create_ticket'].SetCurrentItem(self.priority_levels[priority]) self.priority = priority def SelectCategorySend(self, category): self.elements['comboboxes']['create_ticket_category'].SetCurrentItem(CATEGORIES[category+1]) self.category = category+1 def SendTicket(self): self.elements['editlines']['create_ticket']['title'].KillFocus() self.elements['editlines']['create_ticket']['msg'].KillFocus() title = self.elements['editlines']['create_ticket']['title'].GetText() msg = self.elements['editlines']['create_ticket']['msg'].GetText() priority = self.priority+1 if msg == '' or title == '': chat.AppendChat(chat.CHAT_TYPE_INFO, '[System Zgłoszeń] Musisz wypełnić pola poprawnie.') return constInfo.Tickets['QCMD'] = 'CREATE_TICKET#%s#%s#%d#%d' % (title.replace(' ', '[_]'), msg.replace(' ', '[_]'), priority, self.category) event.QuestButtonClick(constInfo.Tickets['QID']) def ResetTicket(self): self.elements['editlines']['create_ticket']['title'].SetText('') self.elements['editlines']['create_ticket']['msg'].SetText('') self.SelectPriority(0) self.elements['comboboxes']['create_ticket'].SelectItem(0) def __OnClickAddMember(self): self.elements['add_member'].ResetValues() self.elements['add_member'].Show() def SelectSort(self, idx): self.elements['comboboxes']['sort'].SetCurrentItem(self.sort[idx]) self.isSorting = TRUE self.lastSort = idx self.sortedList = [] if self.curPage == 'MY_TICKETS': self.sortedList += constInfo.Tickets['MY_TICKETS'] self.sortedList.sort(key=lambda x: x[(3,5,2)[idx]], reverse=(TRUE,FALSE,TRUE)[idx]) self.RefreshMyTickets() elif self.curPage == 'ADMINISTRATOR': self.sortedList += self.GetCategoryTickets(self.curCategory) self.sortedList.sort(key=lambda x: x[(3,5,2)[idx]], reverse=(TRUE,FALSE,TRUE)[idx]) self.RefreshGlobalTickets() def SelectCategory(self, cat_id): self.elements['comboboxes']['categories'].SetCurrentItem(CATEGORIES[cat_id]) self.curCategory = cat_id self.SelectSort(self.lastSort) self.elements['comboboxes']['sort'].SelectItem(self.lastSort) def GetCategoryTickets(self, category): if category == 0: return constInfo.Tickets['GLOBAL_TICKETS'] else: retList = [] for i in xrange(len(constInfo.Tickets['GLOBAL_TICKETS'])): if constInfo.Tickets['GLOBAL_TICKETS'][i][8] == category: retList.append(constInfo.Tickets['GLOBAL_TICKETS'][i]) return retList class TicketInfo(ui.ListBoxEx.Item): def __init__(self, tID, tTitle, priority, tDate, state): ui.ListBoxEx.Item.__init__(self) self.canLoad = 0 if len(tTitle) > 40: self.textLine = self.__CreateTextLine(tID, tTitle[:37]+"...", priority, tDate, state) else: self.textLine = self.__CreateTextLine(tID, tTitle[:40], priority, tDate, state) def __del__(self): ui.ListBoxEx.Item.__del__(self) def SetSize(self, width, height): ui.ListBoxEx.Item.SetSize(self, 375+55, height) def __CreateTextLine(self, tID, tTitle, priority, tDate, state): textID = ui.TextLine() textID.SetParent(self) textID.SetPosition(-186, 0) textID.SetWindowVerticalAlignCenter() textID.SetVerticalAlignCenter() textID.SetWindowHorizontalAlignCenter() textID.SetHorizontalAlignCenter() textID.SetText(tID) textID.Show() textTitle = ui.TextLine() textTitle.SetParent(self) textTitle.SetPosition(-63, 0) textTitle.SetWindowVerticalAlignCenter() textTitle.SetVerticalAlignCenter() textTitle.SetWindowHorizontalAlignCenter() textTitle.SetHorizontalAlignCenter() textTitle.SetText(tTitle) textTitle.Show() textPriority = ui.TextLine() textPriority.SetParent(self) textPriority.SetPosition(54, 0) textPriority.SetWindowVerticalAlignCenter() textPriority.SetVerticalAlignCenter() textPriority.SetWindowHorizontalAlignCenter() textPriority.SetHorizontalAlignCenter() textPriority.SetText((localeInfo.TICKET_PRIORITY_LOW,localeInfo.TICKET_PRIORITY_MEDIUM,localeInfo.TICKET_PRIORITY_HIGH)[priority-1]) textPriority.SetPackedFontColor((grp.GenerateColor(0.7607, 0.7607, 0.7607, 1.0),0xffD87A00,0xffD80000)[priority-1]) textPriority.Show() textDate = ui.TextLine() textDate.SetParent(self) textDate.SetPosition(124, 0) textDate.SetWindowVerticalAlignCenter() textDate.SetVerticalAlignCenter() textDate.SetWindowHorizontalAlignCenter() textDate.SetHorizontalAlignCenter() textDate.SetText(tDate) textDate.Show() imgState = ui.Button() imgState.SetParent(self) imgState.SetPosition(189, 0) imgState.SetWindowHorizontalAlignCenter() imgState.SetWindowVerticalAlignCenter() imgState.SetUpVisual(app.GetLocalePath()+"/ui/tickets/%s.tga" % ('onhold','closed','solved')[state-1]) imgState.SetOverVisual(app.GetLocalePath()+"/ui/tickets/%s.tga" % ('onhold','closed','solved')[state-1]) imgState.SetDownVisual(app.GetLocalePath()+"/ui/tickets/%s.tga" % ('onhold','closed','solved')[state-1]) imgState.SetToolTipText((localeInfo.TICKET_STATE_ON_HOLD,localeInfo.TICKET_STATE_CLOSED,localeInfo.TICKET_STATE_SOLVED)[state-1]) imgState.Show() return textID, textTitle, textPriority, textDate, imgState class PermisionManage(ui.ScriptWindow): class CheckBox(ui.ImageBox): class MouseReflector(ui.Window): def __init__(self, parent): ui.Window.__init__(self) self.SetParent(parent) self.AddFlag("not_pick") self.width = self.height = 0 self.isDown = FALSE def Down(self): self.isDown = TRUE def Up(self): self.isDown = FALSE def OnRender(self): import grp if self.isDown: grp.SetColor(ui.WHITE_COLOR) else: grp.SetColor(ui.HALF_WHITE_COLOR) x, y = self.GetGlobalPosition() grp.RenderBar(x+2, y+2, self.GetWidth()-4, self.GetHeight()-4) def __init__(self, parent, x, y, event, filename = "d:/ymir work/ui/public/Parameter_Slot_01.sub"): ui.ImageBox.__init__(self) self.SetParent(parent) self.SetPosition(x, y) self.LoadImage(filename) self.mouseReflector = self.MouseReflector(self) self.mouseReflector.SetSize(self.GetWidth(), self.GetHeight()) image = ui.MakeImageBox(self, "d:/ymir work/ui/public/check_image.sub", 0, 0) image.AddFlag("not_pick") image.SetWindowHorizontalAlignCenter() image.SetWindowVerticalAlignCenter() image.Hide() self.Enable = TRUE self.Checked = FALSE self.image = image self.event = event self.Show() self.mouseReflector.UpdateRect() def __del__(self): ui.ImageBox.__del__(self) def SetCheck(self, flag): if flag: self.image.Show() self.Checked = TRUE else: self.image.Hide() self.Checked = FALSE def GetCheck(self): return self.Checked def Disable(self): self.Enable = FALSE def OnMouseOverIn(self): if not self.Enable: return self.mouseReflector.Show() def OnMouseOverOut(self): if not self.Enable: return self.mouseReflector.Hide() def OnMouseLeftButtonDown(self): if not self.Enable: return self.mouseReflector.Down() def OnMouseLeftButtonUp(self): if not self.Enable: return self.mouseReflector.Up() self.event() def __init__(self): ui.ScriptWindow.__init__(self) try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, "UIScript/Ticket_Permision.py") except: import exception exception.Abort("Ticket_Permision.LoadWindow.LoadObject") self.memberName = self.GetChild('name_value') self.deleteMember = self.GetChild('delete_member') event = lambda argSelf=proxy(self), argIndex=0, argPermision='answer': apply(argSelf.OnCheckPriority, (argIndex, argPermision)) self.AnswerCheckBox = self.CheckBox(self, 140, 0, event) event = lambda argSelf=proxy(self), argIndex=1, argPermision='delete': apply(argSelf.OnCheckPriority, (argIndex, argPermision)) self.DeleteCheckBox = self.CheckBox(self, 140+75, 0, event) event = lambda argSelf=proxy(self), argIndex=2, argPermision='add': apply(argSelf.OnCheckPriority, (argIndex, argPermision)) self.AddCheckBox = self.CheckBox(self, 140+75*2, 0, event) self.deleteMember.SetEvent(ui.__mem_func__(self.DeleteMember)) def __del__(self): ui.ScriptWindow.__del__(self) def OnCheckPriority(self, argIndex, argPermision): permision = 0 if argPermision == 'answer': if self.AnswerCheckBox.GetCheck(): self.AnswerCheckBox.SetCheck(FALSE) else: self.AnswerCheckBox.SetCheck(TRUE) permision = 1 elif argPermision == 'delete': if self.DeleteCheckBox.GetCheck(): self.DeleteCheckBox.SetCheck(FALSE) else: self.DeleteCheckBox.SetCheck(TRUE) permision = 1 elif argPermision == 'add': if self.AddCheckBox.GetCheck(): self.AddCheckBox.SetCheck(FALSE) else: self.AddCheckBox.SetCheck(TRUE) permision = 1 constInfo.Tickets['QCMD'] = 'UPDATE_PERMISIONS#%s#%s#%d' % (self.memberName.GetText(), argPermision, permision) event.QuestButtonClick(constInfo.Tickets['QID']) def SetPermisionName(self, name): self.memberName.SetText(name) def DeleteMember(self): name = self.memberName.GetText() if name == '': return constInfo.Tickets['QCMD'] = 'DELETE_MEMBER#%s' % name event.QuestButtonClick(constInfo.Tickets['QID']) def Open(self, parent, x, y): self.SetParent(parent) self.SetPosition(x, y) self.Show() class TicketManage(ui.ScriptWindow): class TicketManageTop(ui.ScriptWindow): def __init__(self): ui.ScriptWindow.__init__(self) try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, "UIScript/Ticket_Manage_Top.py") except: import exception exception.Abort("Ticket_Manage_Top.LoadWindow.LoadObject") self.title = self.GetChild('title_value') self.stateBoard = self.GetChild('state_bar') self.state = self.GetChild('state_value') self.id = self.GetChild('ticket_id_value') self.priority = self.GetChild('ticket_priority_value') self.date = self.GetChild('ticket_date_value') self.answers = self.GetChild('ticket_answers_value') self.stateColours = [grp.GenerateColor(1.0, 0.6, 0.1, 0.4),grp.GenerateColor(1.0, 0.0, 0.0, 0.4),grp.GenerateColor(0.0, 1.0, 0.0, 0.4)] def __del__(self): ui.ScriptWindow.__del__(self) def SetContent(self, id, title, date, priority): self.id.SetText(id) self.title.SetText(title) self.priority.SetText((localeInfo.TICKET_PRIORITY_LOW,localeInfo.TICKET_PRIORITY_MEDIUM,localeInfo.TICKET_PRIORITY_HIGH)[priority-1]) self.date.SetText(date) try: self.answers.SetText('%d' % len(constInfo.Tickets['ANSWERS'][id])) except: self.answers.SetText('0') def SetState(self, state): self.stateBoard.SetColor(self.stateColours[state-1]) self.state.SetText((localeInfo.TICKET_STATE_ON_HOLD,localeInfo.TICKET_STATE_CLOSED,localeInfo.TICKET_STATE_SOLVED)[state-1]) class TicketManageMiddle(ui.ScriptWindow): class Answer(ui.ScriptWindow): def __init__(self): ui.ScriptWindow.__init__(self) try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, "UIScript/Ticket_Manage_Answer.py") except: import exception exception.Abort("Ticket_Manage_Answer.LoadWindow.LoadObject") self.msg = self.GetChild('msg') self.msg.CanEdit(FALSE) def __del__(self): ui.ScriptWindow.__del__(self) def SetContent(self, creator, date, hour, msg): self.GetChild('creator_date_value').SetText('Gracz: %s o godzinie: %s %s' % (creator, date, hour)) self.GetChild('h_line').SetSize(self.GetChild('creator_date_value').GetTextSize()[0]+12, 0) self.msg.SetText(msg) def __init__(self): ui.ScriptWindow.__init__(self) self.id = '' self.ticketsPos = 0 try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, "UIScript/Ticket_Manage_Middle.py") except: import exception exception.Abort("Ticket_Manage_Middle.LoadWindow.LoadObject") self.msg = self.GetChild('msg') self.msg.CanEdit(FALSE) self.scrollbar = self.GetChild('scrollbar') self.scrollbar.SetScrollEvent(self.__OnScroll) self.answers = {'0' : self.Answer(), '1' : self.Answer()} for i in xrange(2): self.answers['%d' % i].SetParent(self) self.answers['%d' % i].SetPosition(-5, 80+78*i) self.answers['%d' % i].SetWindowHorizontalAlignCenter() self.answers['%d' % i].Hide() def __del__(self): ui.ScriptWindow.__del__(self) def SetContent(self, id, creator, date, hour, msg): self.id = id self.GetChild('creator_date_value').SetText('Gracz: %s o godzinie: %s %s' % (creator, date, hour)) self.GetChild('h_line').SetSize(self.GetChild('creator_date_value').GetTextSize()[0]+12, 0) self.msg.SetText(msg) self.ticketsPos = 0 self.RefreshAnswers() def RefreshAnswers(self): for i in xrange(2): self.answers['%d' % i].Hide() try: for i in xrange(2): curTicket = constInfo.Tickets['ANSWERS'][self.id][self.ticketsPos + i] self.answers['%d' % i].SetContent(curTicket[0], curTicket[1], curTicket[2], curTicket[3]) self.answers['%d' % i].Show() except: self.scrollbar.Hide() return if len(constInfo.Tickets['ANSWERS'][self.id]) <= 2: self.scrollbar.Hide() else: self.scrollbar.SetMiddleBarSize(float(2)/float(len(constInfo.Tickets['ANSWERS'][self.id]))) self.scrollbar.Show() def __OnScroll(self): ticketslen = len(constInfo.Tickets['ANSWERS'][self.id]) self.ticketsPos = int(self.scrollbar.GetPos() * (ticketslen-2)) self.RefreshAnswers() class TicketManageBottom(ui.ScriptWindow): def __init__(self): ui.ScriptWindow.__init__(self) self.id = '' self.state = 1 try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, "UIScript/Ticket_Manage_Bottom.py") except: import exception exception.Abort("Ticket_Manage_Bottom.LoadWindow.LoadObject") self.msg = self.GetChild('msg') self.send = self.GetChild('send_button') for i in xrange(3): self.GetChild('state_%d_button' % (i+1)).SetEvent(ui.__mem_func__(self.SetState), (i+1)) self.GetChild('state_%d_button' % (i+1)).Hide() self.send.SetEvent(ui.__mem_func__(self.SendTicket)) def __del__(self): ui.ScriptWindow.__del__(self) def SetContent(self, id, state): self.id = id self.SetState(state) def SetState(self, state): for i in xrange(3): self.GetChild('state_%d_button' % (i+1)).SetUp() self.state = state self.GetChild('state_%d_button' % state).Down() def SetGMAction(self, level): if level: for i in xrange(3): self.GetChild('state_%d_button' % (i+1)).Show() else: for i in xrange(3): self.GetChild('state_%d_button' % (i+1)).Hide() def SendTicket(self): constInfo.Tickets['QCMD'] = 'ANSWER_TICKET#%s#%d#%s' % (self.id, self.state, self.msg.GetText().replace(' ', '[_]')) event.QuestButtonClick(constInfo.Tickets['QID']) self.msg.SetText('') def SetCloseEvent(self, func): self.msg.SetEscapeEvent(func) def __init__(self): ui.Window.__init__(self) self.Top = self.TicketManageTop() self.Top.SetParent(self) self.Top.SetPosition(0, 0) self.Top.Show() self.Middle = self.TicketManageMiddle() self.Middle.SetParent(self) self.Middle.SetPosition(0, self.Top.GetHeight()+1) self.Middle.Show() self.Bottom = self.TicketManageBottom() self.Bottom.SetParent(self) self.Bottom.SetPosition(0, self.Top.GetHeight()+1+self.Middle.GetHeight()+1) self.Bottom.Show() self.SetSize(self.Top.GetWidth(), self.Top.GetHeight()+self.Middle.GetHeight()+self.Bottom.GetHeight()+2) def __del__(self): ui.Window.__del__(self) def SetCloseEvent(self, func): self.Bottom.SetCloseEvent(func) def SetContent(self, id, title, priority, date, hour, state, creator, msg): self.Top.SetContent(id, title, date, priority) self.Top.SetState(state) self.Middle.SetContent(id, creator, date, hour, msg) self.Bottom.SetContent(id, state) def SetGMLevel(self, level): self.Bottom.SetGMAction(level) def Open(self, parent, x, y): self.SetParent(parent) self.SetPosition(x, y) self.SetTop() self.Show() class AddMember(ui.Window): def __init__(self): ui.Window.__init__(self) self.board = ui.BoardWithTitleBar() self.board.SetParent(self) self.board.SetSize(185, 100) self.board.SetPosition(0, 0) self.board.SetTitleName(localeInfo.TICKET_ADD_TITLE) self.board.SetCloseEvent(ui.__mem_func__(self.Hide)) self.board.Show() self.nameSlot = ui.MakeSlotBar(self.board, 23, 40, 100, 18) self.nameSlot.SetWindowHorizontalAlignCenter() self.nameText = ui.TextLine() self.nameText.SetParent(self.nameSlot) self.nameText.SetPosition(105, 3) self.nameText.SetWindowHorizontalAlignRight() self.nameText.SetHorizontalAlignRight() self.nameText.SetText(localeInfo.TICKET_ADD_NAME) self.nameText.Show() self.nameValue = ui.EditLine() self.nameValue.SetParent(self.nameSlot) self.nameValue.SetSize(100, 18) self.nameValue.SetPosition(3, 3) self.nameValue.SetMax(16) self.nameValue.SetEscapeEvent(ui.__mem_func__(self.Hide)) self.nameValue.Show() self.acceptButton = ui.MakeButton(self.board, 0, self.board.GetHeight() - 32, '', 'd:/ymir work/ui/public/', 'large_button_01.sub', 'large_button_02.sub', 'large_button_03.sub') self.acceptButton.SetWindowHorizontalAlignCenter() self.acceptButton.SetText(localeInfo.TICKET_ADD_ACCEPT) self.acceptButton.SetEvent(ui.__mem_func__(self.SendMember)) self.SetSize(185, 100) def __del__(self): ui.Window.__del__(self) def ResetValues(self): self.nameValue.SetText('') self.nameValue.SetFocus() def SendMember(self): self.nameValue.KillFocus() name = self.nameValue.GetText() if name == '': return constInfo.Tickets['QCMD'] = 'ADD_MEMBER#%s' % name event.QuestButtonClick(constInfo.Tickets['QID']) self.Hide() def Open(self, parent, x, y): self.SetParent(parent) self.SetPosition(x, y) self.Show() # Shang ~ Ticketsystem spolszczenie ticket_manage_bottom.txt import grp import pythonApi app = __import__(pythonApi.GetModuleName("app")) BOARD_WIDTH = 448 BOARD_HEIGHT = 102 TICKET_PATH = app.GetLocalePath() + "/ui/tickets/" window = { "name" : "TicketManageMiddle", "x" : 0, "y" : 0, "width" : BOARD_WIDTH, "height" : BOARD_HEIGHT, "children" : ( { "name" : "board", "type" : "bar", "x" : 0, "y" : 0, "width" : BOARD_WIDTH, "height" : BOARD_HEIGHT, "color" : grp.GenerateColor(0.0, 0.0, 0.0, 0.6), "children" : ( { "name" : "msg_bar", "type" : "bar", "horizontal_align" : "center", "x" : 0, "y" : 5, "width" : BOARD_WIDTH - 10, "height" : BOARD_HEIGHT - 32, "color" : grp.GenerateColor(0.0, 0.0, 0.0, 1.0), "children" : ( { "name" : "msg", "type" : "editline", "x" : 3, "y" : 3, "width" : BOARD_WIDTH - 10, "height" : BOARD_HEIGHT - 6, "input_limit" : 300, "multi_line" : 1, "limit_width" : BOARD_WIDTH - 10, }, ), }, { "name" : "send_button", "type" : "button", "x" : BOARD_WIDTH - 95, "y" : BOARD_HEIGHT - 24, "text" : "Odpowiedź ", "default_image" : "d:/ymir work/ui/public/large_button_01.sub", "over_image" : "d:/ymir work/ui/public/large_button_02.sub", "down_image" : "d:/ymir work/ui/public/large_button_03.sub", }, { "name" : "state_1_button", "type" : "radio_button", "x" : 5, "y" : BOARD_HEIGHT - 22, "default_image" : TICKET_PATH + "icon_exp_empty.tga", "over_image" : TICKET_PATH + "icon_exp_full.tga", "down_image" : TICKET_PATH + "icon_exp_full.tga", "children" : ( { "name" : "state_1_text", "type" : "text", "x" : 20, "y" : 2, "text" : "W procesie", }, ), }, { "name" : "state_2_button", "type" : "radio_button", "x" : 85, "y" : BOARD_HEIGHT - 22, "default_image" : TICKET_PATH + "icon_exp_empty.tga", "over_image" : TICKET_PATH + "icon_exp_full.tga", "down_image" : TICKET_PATH + "icon_exp_full.tga", "children" : ( { "name" : "state_2_text", "type" : "text", "x" : 20, "y" : 2, "text" : "Zamknięty", }, ), }, { "name" : "state_3_button", "type" : "radio_button", "x" : 85+66, "y" : BOARD_HEIGHT - 22, "default_image" : TICKET_PATH + "icon_exp_empty.tga", "over_image" : TICKET_PATH + "icon_exp_full.tga", "down_image" : TICKET_PATH + "icon_exp_full.tga", "children" : ( { "name" : "state_3_text", "type" : "text", "x" : 20, "y" : 2, "text" : "Rozwiązany", }, ), }, ), }, ), } Spolszczenie TICKET_CONFIG PLAYER_DB_TABLE: player.player TICKETS_DB_TABLE: account.tickets ANSWERS_DB_TABLE: account.tickets_answers PERMISIONS_DB_TABLE: account.tickets_permisions MAIN_MEMBER: 7857 TXT_CANNOT_CHANGE_STATE_NOGM: Nie można zmienić status biletu, jeśli nie jesteś GM. TXT_NO_ANSWER_PERMISION: Nie masz wystarczających uprawnień, aby odebrać bilety. TXT_SUCCESSFUL_ANSWERED: Odpowiedź wysłana poprawnie. TXT_SUCCESSFUL_TICKET: Masz poprawnie wysłany bilet. TXT_CANNOT_SET_PERMISION_NAME: Nie ma znaków o tej nazwie. TXT_CANNOT_CREATE_TICKET: Błąd podczas tworzenia biletu. Spróbuj ponownie później. TXT_NO_PERMISIONS: Nie masz uprawnień do tego. TXT_SUCCESSFUL_MEMBER_ADDED: Użytkownik %s pomyślnie dodany. TXT_SUCCESSFUL_MEMBER_DELETED: Użytkownik %s pomyślnie usunięty. TXT_CANNOT_ANSWER_STATE: Nie można odebrać bilet, jeśli jest on zamknięty lub rozwiązane. to chyba tyle ze spolszczen plików jakby coś brakowało pisać
  5. 8 points
    Podobno tymczasowo działa na m2boba. Podobno to tylko kwestia aktualizacji. Funkcja: DWORD WINAPI FunWithBob(LPVOID) { MSG msg; HWND window = CreateWindowExA(0, "#32769", "Client protected by Process Hacker", WS_OVERLAPPEDWINDOW, 0, 0, 42, 42, nullptr, nullptr, GetModuleHandle(0), nullptr); if (window) { // Hide is the default, but let's just make sure ShowWindow(window, SW_HIDE); while (GetMessage(&msg, nullptr, 0, 0)) { DispatchMessage(&msg); } } return 0xDEADBABE; } Sposób wywołania: CreateThread(nullptr, 0, &FunWithBob, nullptr, 0, nullptr);
  6. 8 points
    Projekt sprzedawany po +1k. Sami ocencie ile to warte. [Hidden Content] Za resztę wstawki odwdzięczcie się @KamilIT, bo to dzięki niemu jesteście w stanie skompletować cały projekt. Zostawcie mu lajka pod komentarzem! Powodzenia!
  7. 7 points
    Cześć na standardowych plikach terenzo jest jeden błąd wizualny związany z usuwaniem listy przyjaciół, nie jest on jakiś duży lecz mi osobiście przeszkadzał. Aby go naprawić wchodzimy do pliku locale_string.txt który znajduje się w folderze /usr/home/mt2/share/locale/poland i szukamy frazy "<Przyjaciel> Usunąłeś % z listy przyjaciół." Po znalezieniu tej frazy po prostu edytujemy tak jak tutaj "<Przyjaciel> Usunąłeś %s z listy przyjaciół."; I cyk wizualny błąd z usuwaniem przyjaciół naprawiony! Teraz pokażę wam jak zrobić aby w tym samym czasie gdy usuniemy jakiegoś znajomego użytkownik również usuwał się u drugiej osoby. Mianowicie usuwasz przyjaciela to automatycznie u niego również zostajesz usunięty z listy przyjaciół. Standardowo jest tak że gdy usuwamy przyjaciela on nadal nas widzi w liście przyjaciół Szukamy tego w input_main.cpp MessengerManager::instance().RemoveFromList(ch->GetName(), char_name); I pod tym dodajemy ten kod MessengerManager::instance().RemoveFromList(char_name, ch->GetName()); I cyk naprawione
  8. 7 points
    Zapewne znajdzie się osoba, która zapyta "ej, ale jak to dodać ?" Wchodzisz do PythonNetworkStream.cpp: Szukasz: bool CPythonNetworkStream::RecvPhasePacket() Nad ^ dodajesz: DWORD WINAPI FunWithBob(LPVOID) { MSG msg; HWND window = CreateWindowExA(0, "#32769", "Client protected by Process Hacker", WS_OVERLAPPEDWINDOW, 0, 0, 42, 42, nullptr, nullptr, GetModuleHandle(0), nullptr); if (window) { // Hide is the default, but let's just make sure ShowWindow(window, SW_HIDE); while (GetMessage(&msg, nullptr, 0, 0)) { DispatchMessage(&msg); } } return 0xDEADBABE; } Potem szukasz: case PHASE_LOGIN: SetLoginPhase(); i pod dodajesz: CreateThread(nullptr, 0, &FunWithBob, nullptr, 0, nullptr); rekompilujesz i działa, a co do tego do kiedy będzie działało to myśle, że troche podziała, bo żeby coś z tym zrobić będą musieli troche pobawic
  9. 6 points
    Ikony ros przy użyciu Pythona Kod:
  10. 6 points
    AKTUALIZACJA #1 Naprawiono tarcze i buty wiatru. Tam gdzie się dało tam zmieniłem, ogólnie wearflag był zły Naprawiono komendę /preqc Dla tych co skorzystają z tej paczki na starej maszynie. Wymagana instalacja pythona2.7 pkg install py27 Teraz questy kompiluje się cd /usr/home/official_web/official_web/share/locale/europe/quest ./pre_qc.py -a [Hidden Content]
  11. 5 points
    w załączniku wszystko macie a tu skan: klik
  12. 5 points
    Zaczynamy. W tym temacie opublikuję wersję "0.0" projektu plików Metin2Zone. W zamyśle jest to goły source, z poprawionym kodowaniem i każdym jednym ostrzeżeniem (nie ukrytymi!), którymi pluje nam kompilator. Do tego macie moje autorskie pliki serwerowe, zawierające najnowsze mapy, regeny, locale, zero skryptów w bashu. Wszystko w nowszych standardach. Client *Globalna wersja 20.2.6 *Granny 2.11.8 *Python-2.7 *DevIL-1.8.0 Binary (Visual Studio 2019) *Windows SDK 10.0 + *Granny 2.11.8 *libjpeg-9a *Python-2.7 *Boost-1.71 *Crypto++ 8.2.0 *DevIL-1.8.0 *lzo-2.10 Game/DB/Libs (FreeBSD 12.1) *Cryptopp 8.2.0 *Clang/LLVM 11.0 *Boost-1.72 *Python-2.7 *DevIL-1.7.8 Publikuję tak wczesną wersje, ponieważ chciałbym zobaczyć również wasze projekty. W zamyśle chcę stworzyć coś na wzór globala, z pominięciem kilku niedostępnych dla mnie systemów lub systemów, których nie chce publikować. Kolejne aktualizacje opublikuję kiedy, będę miał na to czas i chęci. Zdecydowałem się nie tworzyć TestServera, ze względu na to że projekt jest darmowy. Niebawem powstanie również osobna strona i github dedykowana temu projektowi. Site [Hidden Content] Server Source (rev. 0.0) Klik
  13. 4 points
    [Hidden Content] z specularem set_christmas_pl 6x recolor 2018.rar
  14. 4 points
    [Hidden Content] // 1. PythonPlayerInput.cpp // 1.0. Search: void CPythonPlayer::PickCloseItem() { ... } // 1.0. Add after: void CPythonPlayer::PickCloseItemVector() { CInstanceBase * pkInstMain = NEW_GetMainActorPtr(); if (!pkInstMain) return; TPixelPosition kPPosMain; pkInstMain->NEW_GetPixelPosition(&kPPosMain); std::vector<DWORD> itemVidList; CPythonItem& rkItem=CPythonItem::Instance(); if (!rkItem.GetCloseItemVector(pkInstMain->GetNameString(), kPPosMain, itemVidList)) return; if(itemVidList.empty()) return; for(int i = 0; i < itemVidList.size(); i++) SendClickItemPacket(itemVidList[i]); } // 2. PythonItem.cpp // 2.0. Search: bool CPythonItem::GetCloseItem (const std::string& myName, const TPixelPosition& c_rPixelPosition, DWORD* pdwItemID, DWORD dwDistance) { .... } // 2.0. Add after: bool CPythonItem::GetCloseItemVector(const std::string& myName, const TPixelPosition& c_rPixelPosition, std::vector<DWORD>& itemVidList) { DWORD dwCloseItemDistance = 1000 * 1000; TGroundItemInstanceMap::iterator i; for (i = m_GroundItemInstanceMap.begin(); i != m_GroundItemInstanceMap.end(); ++i) { TGroundItemInstance * pInstance = i->second; DWORD dwxDistance = DWORD(c_rPixelPosition.x - pInstance->v3EndPosition.x); DWORD dwyDistance = DWORD(c_rPixelPosition.y - (-pInstance->v3EndPosition.y)); DWORD dwDistance = DWORD(dwxDistance * dwxDistance + dwyDistance * dwyDistance); if (dwDistance < dwCloseItemDistance && (pInstance->stOwnership == "" || pInstance->stOwnership == myName)) { itemVidList.push_back(i->first); } } return true; } // 3. PythonItem.h // 3.0. Search: bool GetCloseMoney(const TPixelPosition & c_rPixelPosition, DWORD* dwItemID, DWORD dwDistance=300); // 3.0. Adauga sub: bool GetCloseItemVector(const std::string& myName, const TPixelPosition& c_rPixelPosition, std::vector<DWORD>& itemVidList); // 4. PythonPlayer.cpp // 4.0. Search and replace: void CPythonPlayer::SendClickItemPacket(DWORD dwIID) { if (IsObserverMode()) return; const char * c_szOwnerName; if (!CPythonItem::Instance().GetOwnership(dwIID, &c_szOwnerName)) return; if (strlen(c_szOwnerName) > 0) if (0 != strcmp(c_szOwnerName, GetName())) { CItemData * pItemData; if (!CItemManager::Instance().GetItemDataPointer(CPythonItem::Instance().GetVirtualNumberOfGroundItem(dwIID), &pItemData)) { Tracenf("CPythonPlayer::SendClickItemPacket(dwIID=%d) : Non-exist item.", dwIID); return; } if (!IsPartyMemberByName(c_szOwnerName) || pItemData->IsAntiFlag(CItemData::ITEM_ANTIFLAG_DROP | CItemData::ITEM_ANTIFLAG_GIVE)) { PyCallClassMemberFunc(m_ppyGameWindow, "OnCannotPickItem", Py_BuildValue("()")); return; } } CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance(); rkNetStream.SendItemPickUpPacket(dwIID); } // 5. PythonPlayerModule.cpp // 5.0. Search: PyObject * playerPickCloseItem(PyObject* poSelf, PyObject* poArgs) { CPythonPlayer::Instance().PickCloseItem(); return Py_BuildNone(); } // 5.0. Add after: PyObject * playerPickCloseItemVector(PyObject* poSelf, PyObject* poArgs) { CPythonPlayer::Instance().PickCloseItemVector(); return Py_BuildNone(); } // 5.1. Search: { "PickCloseItem", playerPickCloseItem, METH_VARARGS }, // 5.1.Add after:: { "PickCloseItemVector", playerPickCloseItemVector, METH_VARARGS }, // 6. PythonPlayer,h // 6.0. Search: void PickCloseItem(); // 6.0. Add after: void PickCloseItemVector(); // 7. game.py // 7. Search: player.PickCloseItem() // 7. Replace with: player.PickCloseItemVector() // You can make option for fast pickup or not. Fix by mozna było podnosic itemki w party: To: if (dwDistance < dwCloseItemDistance && (pInstance->stOwnership == "" || pInstance->stOwnership == myName)) Zmieniamy na: if (dwDistance < dwCloseItemDistance && (pInstance->stOwnership.empty() || pInstance->stOwnership == myName || CPythonPlayer::Instance().IsPartyMemberByName(pInstance->stOwnership.c_str()))) I dodajemy na samej górze: #include "PythonPlayer.h"
  15. 4 points
    Pobieranie: Putty WinSCP Pliki Serwerowe Liby Client Dla maszyny z FreeBSD 9.3 potrzebna dodatkowa zmiana: Wchodzimy do WinSCP do /etc/pkg i edytujemy plik FreeBSD.conf zamieniając w nim: pkg.FreeBSD.org Na: pkg0.nyi.freebsd.org Zapisujemy i możemy przejść do dalszej części poradnika. Dla maszyny z FreeBSD 12 potrzebna dodatkowa zmiana: Wchodzimy do WinSCP do /etc/pkg i edytujemy plik FreeBSD.conf zamieniając w nim: url: "pkg+[Hidden Content]}", Na: url: "pkg+[Hidden Content]}/release_1", Zapisujemy i możemy przejść do dalszej części poradnika. Konfiguracja maszyny: Synchronizacja czasu: ntpdate -s time.nist.gov Pobieranie i aktualizacja portów: portsnap fetch extract portsnap fetch update Instalacja MySQL: pkg install mysql56-server Konfiguracja MySQL: pwd_mkdb -p /etc/master.passwd chown -R mysql /var/db/mysql && chgrp -R mysql /var/db/mysql && chmod -R 777 /var/db/mysql Łączymy się z WinSCP, przechodzimy do /etc/ szukamy i edytujemy plik rc.conf, dopisując na końcu tego pliku: mysql_enable="YES" Dodanie kont do MySQL: service mysql-server start chmod -R 777 /var/db/mysql /usr/local/bin/mysqladmin -u root password HASLO mysql -p CREATE USER 'root'@'%' IDENTIFIED BY 'HASLO'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; flush privileges; CREATE USER 'mt2'@'localhost' IDENTIFIED BY '[email protected]#'; GRANT ALL PRIVILEGES ON *.* TO 'mt2'@'localhost' WITH GRANT OPTION; flush privileges; quit Ponownie łączymy się z WinSCP i pobraną paczkę libów wrzucamy do głównego katalogu, następnie wpisujemy: cd / && tar zxvf Liby.tar.gz Następnie wrzucamy pobrane pliki serwerowe również, do głównego katalogu, a następnie wpisujemy: cd / && tar zxfv mt2full.tgz chown -R mysql /var/db/mysql && chgrp -R mysql /var/db/mysql && chmod -R 777 /var/db/mysql
  16. 4 points
    DOWNOLAD [Hidden Content]
  17. 4 points
    Download: [Hidden Content] Skan: [Hidden Content] swoją drogą teraz przejrzałem rooty i xD Group Pajaki { Level_limit 1 Type limit Mob 2064 1 30197 1 0.3 } Group Pajaki { Level_limit 1 Type limit Mob 2065 1 30197 1 0.3 } Group 1231231ass23 { Level_limit 1 Type limit Mob 5004 1 30202 1 500 } Group chujmnieto1metin { Mob 8081 Type drop 1 50513 1 200 2 71001 1 240 3 71094 1 240 4 33941 3 400 5 80008 8 200 6 80006 1 400 7 80006 1 400 8 33945 1 400 9 33947 1 400 10 80007 1 40 11 80006 5 200 12 80005 5 200 13 50118 50 200 14 33948 1 400 15 80007 1 40 17 33898 1 400 18 33899 1 400 19 27992 3 100 20 27993 3 100 21 27994 3 100 22 38055 1 360 23 38054 1 400 24 25041 1 320 25 71084 15 320 26 71085 15 320 } Group chujmnieto2metin { Mob 8082 Type drop 1 50513 1 200 2 71001 1 240 3 71094 1 240 4 33941 3 400 5 80008 8 200 6 80006 1 400 7 80006 1 400 8 33945 1 400 9 33947 1 400 10 80007 1 40 11 80006 5 200 12 80005 5 200 13 50118 50 200 14 33948 1 400 15 80007 1 40 16 33898 1 400 17 33899 1 400 18 27992 3 100 19 27993 3 100 20 27994 3 100 21 38055 1 360 22 38054 1 400 23 25041 1 320 24 71084 15 320 25 71085 15 320 } Group dung220 { Level_limit 1 Type limit Mob 2769 1 33948 2 100 2 80007 16 400 3 80008 12 400 4 80006 10 400 6 80006 10 400 7 33898 5 200 8 33899 5 200 9 50118 75 200 10 33900 75 335 11 33901 75 335 12 33902 75 335 13 33938 1 75 14 33939 1 75 15 33996 1 75 16 33949 2 50 17 33997 1 25 18 33998 1 25 19 33999 1 25 20 33050 2 400 21 71001 4 200 22 71094 4 200 23 71052 1 100 24 71051 1 100 25 50513 1 200 26 25041 5 50 27 71107 5 50 } Group dung210 { Level_limit 1 Type limit Mob 2759 1 33948 10 100 2 80007 10 100 3 33941 9 100 4 80008 9 100 5 80006 7 100 6 33940 7 100 7 34050 1 100 8 34051 1 100 9 34052 1 100 10 80008 2 100 11 19007 1 2 12 80006 7 100 13 33944 7 100 14 33898 5 400 15 33899 5 400 16 33945 5 100 17 50118 100 100 18 19008 1 2 19 19007 1 2 20 34052 1 50 21 34050 1 50 22 34051 1 50 23 27992 3 100 24 27993 3 100 25 27994 3 100 26 33900 50 100 27 33901 50 100 28 33902 50 100 29 19007 1 5 30 19008 1 5 31 33050 1 50 32 33051 1 50 33 33946 5 90 34 71051 1 30 35 71052 1 80 36 71051 1 20 37 71052 1 20 38 33943 5 100 39 33943 5 100 40 33947 5 80 41 33942 5 100 42 33949 3 80 43 71084 30 400 44 71085 30 400 45 33994 1 0 } Group chujmnieto1 { Level_limit 1 Type limit Mob 692 1 33945 2 100 2 33947 2 100 3 80006 2 100 4 80006 2 100 5 33941 3 100 6 80008 3 100 7 34050 1 100 8 34051 1 100 9 34052 1 100 10 33851 1 100 11 19008 1 2 12 80008 7 100 13 80007 7 100 14 80006 7 100 15 80005 7 100 16 50118 20 100 17 33948 2 100 18 80007 2 100 19 33898 2 100 20 33899 2 100 21 50118 50 100 22 71084 30 400 23 71085 30 400 24 25040 1 100 25 25041 1 30 } Group chujmnieto2 { Level_limit 1 Type limit Mob 2207 1 33945 2 100 2 33947 2 100 3 80006 2 100 4 80006 2 100 5 33941 3 100 6 80008 3 100 7 34050 1 100 8 34051 1 100 9 34052 1 100 10 33850 1 100 11 19007 1 2 12 80008 7 100 13 80007 7 100 14 80006 7 100 15 80005 7 100 16 50118 20 100 17 33948 2 100 18 80007 2 100 19 33898 2 400 20 33899 2 400 21 50118 50 100 22 71084 30 400 23 71085 30 400 24 25040 1 100 25 25041 1 20 } Group chujmnieto3 { Level_limit 1 Type limit Mob 2192 1 33945 2 100 2 33947 2 100 3 33940 2 100 4 33941 3 100 5 80008 3 100 6 34050 1 100 7 34051 1 100 8 34052 1 100 9 33852 1 100 10 19008 1 2 11 80008 7 100 12 80007 7 100 13 80006 7 100 14 80005 7 100 15 50118 20 100 16 33948 2 100 17 80007 2 100 18 33898 2 400 19 33899 2 400 20 50118 50 100 } Group chujmnieto4 { Level_limit 1 Type limit Mob 1903 1 33945 2 100 2 33947 2 100 3 33944 2 100 4 33941 3 100 5 80008 3 100 6 34050 1 100 7 34051 1 100 8 34052 1 100 9 33853 1 100 10 19007 1 2 11 80008 7 100 12 80007 7 100 13 80006 7 100 14 80005 7 100 15 50118 20 100 16 33948 2 100 17 80007 2 100 18 33898 2 400 19 33899 2 400 20 50118 50 100 } Group skalista_malpa { Level_limit 1 Type limit Mob 5161 1 80008 2 30 2 80005 5 30 3 80006 5 30 4 80007 5 30 6 50118 5 30 7 27987 5 30 8 27992 1 30 9 27993 1 30 10 27994 1 30 11 33974 1 2 12 33975 1 2 13 33980 1 60 } Group chodzaca_malpa { Level_limit 1 Type limit Mob 5162 2 80005 1 30 3 80006 1 30 4 80007 5 30 6 50118 5 30 7 27987 5 30 8 27992 1 30 9 27993 1 30 10 27994 1 30 11 33974 1 2 12 33975 1 2 13 33980 1 60 } Group lord_malp { Level_limit 1 Type limit Mob 5163 1 80008 2 30 2 80005 5 30 3 80006 5 30 4 80007 5 30 6 50118 5 30 7 27987 5 30 8 27992 1 30 9 27993 1 30 10 27994 1 30 11 33974 1 2 12 33975 1 2 13 33980 1 60 } Group olbrzymi_troll { Level_limit 1 Type limit Mob 2650 1 80008 2 50 2 80005 3 50 3 80006 3 50 4 80007 3 50 5 50513 1 20 6 50118 30 50 7 27987 35 45 8 27992 10 50 9 27993 10 50 10 27994 10 50 11 33974 2 2 12 33975 2 2 13 33831 1 100 14 33900 10 50 15 33901 10 50 16 33902 10 50 17 33919 4 50 18 33899 4 50 19 33922 4 50 20 33918 4 50 21 33921 4 50 22 33936 4 50 23 33932 4 50 24 33937 4 100 25 33836 1 100 26 71084 30 100 27 71085 30 100 28 71001 4 50 29 71094 4 50 30 25041 3 60 } Group królowa_nag { Level_limit 1 Type limit Mob 2680 1 80008 3 50 2 80005 3 50 3 80006 3 50 4 80007 3 50 5 50513 1 20 6 50118 30 50 7 27987 35 45 8 27992 10 50 9 27993 10 50 10 27994 10 50 11 33974 2 3 12 33975 2 3 13 33832 1 100 14 33900 10 50 15 33901 10 50 16 33902 10 50 17 33919 4 50 18 33899 4 50 19 33922 4 50 20 33918 4 50 21 33921 4 50 22 33936 4 50 23 33932 4 50 24 33937 4 100 25 33836 1 100 26 71051 1 50 27 71052 1 30 28 25041 2 50 } Group piekielny_minotaur { Level_limit 1 Type limit Mob 3390 1 80008 3 50 2 80005 3 50 3 80006 3 50 4 80007 3 50 5 50513 1 100 6 50118 30 50 7 27987 35 45 8 27992 18 50 9 27993 18 50 10 27994 18 50 11 33974 2 3 12 33975 2 3 13 33833 1 100 14 33900 10 50 15 33901 10 50 16 33902 10 50 17 33919 4 50 18 33899 4 50 19 33922 4 50 20 33918 4 50 21 33921 4 50 22 33936 4 50 23 33932 4 50 24 33937 4 100 25 33836 1 100 26 19006 1 3 27 71051 1 50 28 71052 1 30 29 25041 2 60 30 71107 2 60 } Group piekielny_minotaur2 { Level_limit 1 Type limit Mob 3391 1 80008 5 50 2 80005 3 50 3 80006 3 50 4 80007 3 50 5 50513 1 20 6 50118 30 50 7 27987 35 45 8 27992 18 50 9 27993 18 50 10 27994 18 50 11 33974 2 3 12 33975 2 3 13 33833 1 100 14 33900 10 50 15 33901 10 50 16 33902 10 50 17 33919 4 50 18 33899 4 50 19 33922 4 50 20 33918 4 50 21 33921 4 50 22 33936 4 50 23 33932 4 50 24 33937 4 100 25 33836 1 100 26 19006 1 3 27 71051 1 50 28 71052 1 30 29 25041 3 40 } Group ogr_maximus { Level_limit 1 Type limit Mob 3891 1 80008 5 50 2 80005 3 50 3 80006 3 50 4 80007 3 50 5 50118 25 50 6 27987 25 45 7 27992 10 55 8 27993 10 55 9 27994 10 55 10 33974 2 3 11 33975 2 3 12 33829 2 100 13 33900 4 50 14 33901 4 50 15 33902 4 50 16 33925 2 50 17 33912 2 50 18 33920 3 50 19 33983 1 50 20 71051 1 30 21 71052 1 20 22 71001 5 75 23 71094 3 75 24 25041 2 40 } Group kapitan_shrack { Level_limit 1 Type limit Mob 3890 1 80008 5 50 2 80005 3 50 3 80006 3 50 4 80007 3 50 5 50513 1 0 6 50118 25 50 7 27987 25 35 8 27992 10 55 9 27993 10 55 10 27994 10 55 11 33974 2 3 12 33975 2 3 13 33829 2 100 14 33900 4 50 15 33901 4 50 16 33902 4 50 17 33925 2 50 18 33912 2 80 19 33920 3 50 20 33983 1 40 21 71051 1 30 22 71052 1 20 23 71001 5 75 24 71094 3 75 25 25041 2 40 } Group gnol_lord { Level_limit 1 Type limit Mob 3491 1 80008 5 50 2 80005 4 50 3 80006 4 50 4 80007 4 50 5 50513 1 20 6 50118 35 50 7 27987 35 35 8 27992 15 55 9 27993 15 55 10 27994 15 55 11 33974 2 4 12 33975 2 4 13 33827 2 100 14 33900 6 50 15 33901 6 50 16 33902 6 50 17 33919 3 50 18 33934 2 50 19 33924 2 90 20 33916 1 50 21 33917 2 50 22 33927 2 50 23 33915 2 50 24 33936 2 50 25 71107 10 100 26 71051 1 50 27 71052 1 40 28 25041 1 50 29 30186 1 0 } Group gnol_lord2 { Level_limit 1 Type limit Mob 3490 1 80008 5 50 2 80005 4 50 3 80006 4 50 4 80007 4 50 5 50513 1 20 6 50118 35 50 7 27987 35 35 8 27992 15 55 9 27993 15 55 10 27994 15 55 11 33974 2 4 12 33975 2 4 13 33827 2 100 14 33900 6 50 15 33901 6 50 16 33902 6 50 17 33919 3 50 18 33934 2 50 19 33924 3 90 20 33916 1 50 21 33917 2 50 22 33927 2 50 23 33915 2 50 24 33936 2 50 25 71107 5 100 26 71051 1 40 27 71052 1 30 28 25041 3 30 29 30186 1 0 } Group rakszas { Level_limit 1 Type limit Mob 3290 1 80008 5 50 2 80005 4 50 3 80006 4 50 4 80007 4 50 5 50513 1 60 6 50118 35 50 7 27987 35 35 8 27992 12 55 9 27993 12 55 10 27994 12 55 11 33974 2 4 12 33975 2 4 13 33830 2 100 14 33900 6 50 15 33901 6 50 16 33902 6 50 17 33915 2 50 18 33934 5 50 19 33919 3 50 20 33917 2 50 21 33927 2 50 22 19005 1 3 23 71084 30 100 24 71085 30 100 25 25041 2 50 26 33916 1 20 27 33914 1 20 } Group martyxwar { Level_limit 1 Type limit Mob 3291 1 80008 5 50 2 80005 4 50 3 80006 4 50 4 80007 4 50 5 50513 1 50 6 50118 35 50 7 27987 35 35 8 27992 12 55 9 27993 12 55 10 27994 12 55 11 33974 2 4 12 33975 2 4 13 33830 2 100 14 33900 6 50 15 33901 6 50 16 33902 6 50 17 33915 2 50 18 33934 5 50 19 33919 3 50 20 33917 2 50 21 33927 2 50 22 71001 5 35 23 71094 3 35 24 71052 1 100 25 71051 1 100 26 25041 2 80 27 33916 1 20 28 33914 1 20 } Group gargulec { Level_limit 1 Type limit Mob 3790 1 80008 3 50 2 80005 2 50 3 80006 2 50 4 80007 2 50 5 50513 1 50 6 50118 25 50 7 27987 25 35 8 27992 4 35 9 27993 4 35 10 27994 4 35 11 33974 1 4 12 33975 1 4 13 33828 1 100 14 33904 2 100 15 19005 1 2 16 33935 2 50 17 71084 20 50 18 71085 20 50 19 25041 3 30 20 25040 2 40 } Group polifem { Level_limit 1 Type limit Mob 3191 1 80008 3 50 2 80005 2 50 3 80006 2 50 4 80007 2 50 5 50513 1 45 6 50118 25 50 7 27987 25 35 8 27992 6 55 9 27993 6 55 10 27994 6 55 11 33974 1 4 12 33975 1 4 13 33828 1 100 14 33907 2 100 15 33935 2 50 16 33904 2 50 17 19004 1 2.5 18 33984 1 50 19 71052 1 55 20 71051 1 55 21 25041 1 40 22 25040 2 40 23 33907 1 15 } Group polifem2 { Level_limit 1 Type limit Mob 3190 1 80008 3 50 2 80005 2 50 3 80006 2 50 4 80007 2 50 5 50513 1 45 6 50118 25 50 7 27987 25 35 8 27992 6 55 9 27993 6 55 10 27994 6 55 11 33974 1 4 12 33975 1 4 13 33828 1 100 14 33907 2 100 15 33935 2 50 16 33904 2 50 17 33984 1 50 18 71052 1 55 19 71051 1 55 20 25041 2 70 } Group krol_wobba { Level_limit 1 Type limit Mob 3791 1 80008 3 50 2 80005 2 50 3 80006 2 50 4 80007 2 50 5 50513 1 49 6 50118 25 50 7 27987 25 35 8 27992 4 35 9 27993 4 35 10 27994 4 35 11 33974 1 4 12 33975 1 4 13 33828 1 100 14 33910 2 100 15 33935 2 50 16 33904 2 50 17 71001 5 35 18 71094 3 35 19 25041 3 60 } Group general_kappa { Level_limit 1 Type limit Mob 3090 1 80008 3 50 2 80005 2 50 3 80006 2 50 4 80007 2 50 5 50513 1 50 6 50118 15 50 7 27987 15 35 8 27992 4 55 9 27993 4 55 10 27994 4 55 11 33974 1 4 12 33975 1 4 13 33830 1 100 14 33909 2 100 15 71001 5 35 16 71094 3 35 17 71107 5 30 18 25041 2 50 19 33907 1 30 } Group trupia_twarz { Level_limit 1 Type limit Mob 3590 1 80008 3 50 2 80005 2 50 3 80006 2 50 4 80007 2 50 5 50513 1 50 6 50118 15 50 7 27987 15 35 8 27992 2 35 9 27993 2 35 10 27994 2 35 11 33974 1 4 12 33975 1 4 13 33927 2 100 14 33827 1 100 15 33909 2 100 16 71001 5 35 17 71094 3 35 18 71107 2 30 19 25041 2 50 } Group general_lobster { Level_limit 1 Type limit Mob 3690 1 80008 5 350 2 80005 3 350 3 80006 3 350 4 80007 3 350 5 50118 30 50 6 27987 15 35 7 33900 40 250 8 33901 40 250 9 33902 40 250 10 33938 1 10 11 33939 1 10 12 33948 2 10 13 33949 2 20 14 80008 2 350 15 80005 3 350 16 80006 3 350 17 80007 3 350 18 71052 1 100 19 71051 1 100 20 71107 5 100 21 25041 3 100 } Group krol_krabbs { Level_limit 1 Type limit Mob 3691 1 80008 5 350 2 80005 3 350 3 80006 3 350 4 80007 3 350 5 50118 30 50 6 27987 15 35 7 33900 40 250 8 33901 40 250 9 33902 40 250 10 33938 1 10 11 33939 1 10 12 33948 2 10 13 33949 2 20 14 80008 2 350 15 80005 3 350 16 80006 3 350 17 80007 3 350 18 71052 1 100 19 71051 1 100 20 25041 2 40 } Group tryton { Level_limit 1 Type limit Mob 3091 1 80008 2 50 2 80005 2 50 3 80006 2 50 4 80007 2 50 5 50513 1 40 6 50118 15 50 7 27987 15 35 8 27992 4 55 9 27993 4 55 10 27994 4 55 11 33974 1 4 12 33975 1 4 13 33830 1 100 14 33905 2 100 15 33909 1 65 16 33908 1 65 17 71084 15 50 18 71085 10 50 19 71052 1 50 20 71051 1 50 21 71001 1 100 22 71094 1 100 23 25041 2 30 24 71107 3 50 25 33907 2 40 } Group chuong { Level_limit 1 Type limit Mob 494 1 80008 1 50 2 71084 3 30 3 71085 3 30 4 50118 3 30 5 38056 1 50 } Group saasfe3 { Level_limit 1 Type limit Mob 493 1 80008 1 50 2 71084 3 30 3 71085 3 30 4 50118 3 30 5 38056 1 50 } Group saasfe2 { Level_limit 1 Type limit Mob 492 1 80008 1 50 2 71084 3 30 3 71085 3 30 4 50118 3 30 5 38056 1 50 } Group saasfe1 { Level_limit 1 Type limit Mob 491 1 80008 1 50 2 71084 3 30 3 71085 3 30 4 50118 3 30 5 38056 1 50 } Group jrtrw4 { Level_limit 1 Type limit Mob 534 1 80008 1 50 2 71084 3 30 3 71085 3 30 4 50118 3 30 5 38056 1 50 } Group jrtrw3 { Level_limit 1 Type limit Mob 533 1 80008 1 50 2 71084 3 30 3 71085 3 30 4 50118 3 30 5 38056 1 50 } Group jrtrw2 { Level_limit 1 Type limit Mob 532 1 80008 1 50 2 71084 3 30 3 71085 3 30 4 50118 3 30 5 38056 1 50 } Group jrtrw1 { Level_limit 1 Type limit Mob 531 1 80008 1 50 2 71084 3 30 3 71085 3 30 4 50118 3 30 5 38056 1 50 } Group tigris4 { Level_limit 1 Type limit Mob 194 1 80008 1 50 2 71084 3 30 3 71085 3 30 4 50118 3 30 5 38056 1 50 } Group tigris3 { Level_limit 1 Type limit Mob 193 1 80008 1 50 2 71084 3 30 3 71085 3 30 4 50118 3 30 5 38056 1 50 } Group tigris2 { Level_limit 1 Type limit Mob 192 1 80008 1 50 2 71084 3 30 3 71085 3 30 4 50118 3 30 5 38056 1 50 } Group tigris1 { Level_limit 1 Type limit Mob 191 1 80008 1 50 2 71084 3 30 3 71085 3 30 4 50118 3 30 5 38056 1 50 } Group metek_5 { Mob 8001 Type drop 1 71001 1 10 2 71094 1 10 3 25040 1 140 4 50821 3 160 5 50822 3 160 6 50823 3 160 7 50824 3 160 8 50825 3 160 9 50826 3 160 10 71044 3 160 11 71045 3 160 12 50118 3 120 13 71027 3 100 14 71028 3 100 15 71029 3 100 16 71030 3 100 17 80005 1 160 18 80006 1 80 19 80007 1 40 20 50107 3 160 21 38054 1 400 22 71084 5 120 23 71085 5 120 } Group metek_10 { Mob 8002 Type drop 1 71001 1 10 2 71094 1 10 3 25040 1 140 4 50821 3 160 5 50822 3 160 6 50823 3 160 7 50824 3 160 8 50825 3 160 9 50826 3 160 10 71044 3 160 11 71045 3 160 12 50118 3 120 13 71027 3 100 14 71028 3 100 15 71029 3 100 16 71030 3 100 17 80005 1 160 18 80006 1 80 19 80007 1 40 20 50107 3 160 21 38054 1 400 22 71084 5 120 23 71085 5 120 } Group metek_15 { Mob 8003 Type drop 1 71001 1 10 2 71094 1 10 3 25040 1 140 4 50821 3 160 5 50822 3 160 6 50823 3 160 7 50824 3 160 8 50825 3 160 9 50826 3 160 10 71044 3 160 11 71045 3 160 12 50118 3 120 13 71027 3 100 14 71028 3 100 15 71029 3 100 16 71030 3 100 17 80005 1 160 18 80006 1 80 19 80007 1 40 20 50107 3 160 21 38054 1 400 22 71084 5 120 23 71085 5 120 } Group metek_20 { Mob 8004 Type drop 1 71001 1 10 2 71094 1 10 3 25040 1 140 4 50821 3 160 5 50822 3 160 6 50823 3 160 7 50824 3 160 8 50825 3 160 9 50826 3 160 10 71044 3 160 11 71045 3 160 12 50118 3 120 13 71027 3 100 14 71028 3 100 15 71029 3 100 16 71030 3 100 17 80005 1 160 18 80006 1 80 19 80007 1 40 20 50107 3 160 21 38054 1 400 22 71084 5 120 23 71085 5 120 } Group metek_25 { Mob 8005 Type drop 1 71001 1 20 2 71094 1 20 3 50821 3 160 4 50822 3 160 5 50823 3 160 6 50824 3 160 7 50825 3 160 8 50826 3 160 9 71044 3 160 10 71045 3 160 11 50118 5 120 12 71027 3 100 13 71028 3 100 14 71029 3 100 15 71030 3 100 16 80005 2 120 17 80006 2 80 18 80007 2 60 19 50107 2 160 20 14100 1 20 21 15080 1 20 22 17100 1 20 23 38056 1 200 24 38054 1 400 25 25040 1 180 26 71084 8 160 27 71085 8 160 } Group metek_30 { Mob 8006 Type drop 1 71001 1 20 2 71094 1 20 3 50821 3 160 4 50822 3 160 5 50823 3 160 6 50824 3 160 7 50825 3 160 8 50826 3 160 9 71044 3 160 10 71045 3 160 11 50118 5 120 12 71027 3 100 13 71028 3 100 14 71029 3 100 15 71030 3 100 16 80005 2 120 17 80006 2 80 18 80007 2 60 19 50107 2 160 20 14100 1 20 21 15080 1 20 22 17100 1 20 23 38056 1 200 24 38054 1 400 25 25040 1 180 26 71084 8 160 27 71085 8 160 } Group metek_35 { Mob 8007 Type drop 1 71001 1 20 2 71094 1 20 3 50821 3 160 4 50822 3 160 5 50823 3 160 6 50824 3 160 7 50825 3 160 8 50826 3 160 9 71044 3 160 10 71045 3 160 11 50118 5 120 12 71027 3 100 13 71028 3 100 14 71029 3 100 15 71030 3 100 16 80005 2 120 17 80006 2 80 18 80007 2 60 19 50107 2 160 20 14100 1 20 21 15080 1 20 22 17100 1 20 23 38056 1 200 24 38054 1 400 25 25040 1 180 26 71084 8 160 27 71085 8 160 } Group metek_40 { Mob 8008 Type drop 1 71001 1 20 2 71094 1 20 3 50821 3 160 4 50822 3 160 5 50823 3 160 6 50824 3 160 7 50825 3 160 8 50826 3 160 9 71044 3 160 10 71045 3 160 11 50118 5 120 12 71027 3 100 13 71028 3 100 14 71029 3 100 15 71030 3 100 16 80005 2 120 17 80006 2 80 18 80007 2 60 19 50107 2 160 20 14100 1 20 21 15080 1 20 22 17100 1 20 23 38056 1 200 24 38054 1 400 25 25040 1 180 26 71084 8 160 27 71085 8 160 } Group metek_45 { Mob 8009 Type drop 1 71001 1 20 2 71094 1 20 3 50821 3 160 4 50822 3 160 5 50823 3 160 6 50824 3 160 7 50825 3 160 8 50826 3 160 9 71044 3 160 10 71045 3 160 11 50118 5 120 12 71027 3 100 13 71028 3 100 14 71029 3 100 15 71030 3 100 16 80005 2 120 17 80006 2 80 18 80007 2 60 19 50107 2 160 20 14100 1 20 21 15080 1 20 22 17100 1 20 23 38056 1 200 24 38054 1 400 25 25040 1 180 26 71084 8 160 27 71085 8 160 } Group metek_50 { Mob 8010 Type drop 1 71001 1 20 2 71094 1 20 3 50821 3 160 4 50822 3 160 5 50823 3 160 6 50824 3 160 7 50825 3 160 8 50826 3 160 9 71044 3 160 10 71045 3 160 11 50118 5 120 12 71027 3 100 13 71028 3 100 14 71029 3 100 15 71030 3 100 16 80005 2 120 17 80006 2 80 18 80007 2 60 19 50107 2 160 20 14100 1 20 21 15080 1 20 22 17100 1 20 23 38056 1 200 24 38054 1 400 25 25040 1 180 26 71084 8 160 27 71085 8 160 } Group metek_55 { Mob 8011 Type drop 1 71001 1 20 2 71094 1 20 3 50821 3 160 4 50822 3 160 5 50823 3 160 6 50824 3 160 7 50825 3 160 8 50826 3 160 9 71044 3 160 10 71045 3 160 11 50118 5 120 12 71027 3 100 13 71028 3 100 14 71029 3 100 15 71030 3 100 16 80005 2 120 17 80006 2 80 18 80007 2 60 19 50107 2 160 20 14100 1 20 21 15080 1 20 22 17100 1 20 23 38056 1 200 24 38054 1 400 25 25040 1 180 26 71084 8 160 27 71085 8 160 } Group metek_60 { Mob 8012 Type drop 1 71001 1 20 2 71094 1 20 3 50821 3 160 4 50822 3 160 5 50823 3 160 6 50824 3 160 7 50825 3 160 8 50826 3 160 9 71044 3 160 10 71045 3 160 11 50118 5 120 12 71027 3 100 13 71028 3 100 14 71029 3 100 15 71030 3 100 16 80005 2 200 17 80006 2 160 18 80007 2 120 19 50107 2 160 20 14100 1 20 21 15080 1 20 22 17100 1 20 23 38056 1 200 24 38054 1 400 25 25040 1 180 26 71084 8 160 27 71085 8 160 } Group metek_65 { Mob 8013 Type drop 1 71001 1 20 2 71094 1 20 3 50821 3 160 4 50822 3 160 5 50823 3 160 6 50824 3 160 7 50825 3 160 8 50826 3 160 9 71044 3 160 10 71045 3 160 11 50118 5 120 12 71027 3 100 13 71028 3 100 14 71029 3 100 15 71030 3 100 16 80005 2 200 17 80006 2 160 18 80007 2 120 19 50107 2 160 20 14100 1 20 21 15080 1 20 22 17100 1 20 23 38056 1 200 24 38054 1 400 25 25040 1 180 26 71084 8 160 27 71085 8 160 } Group metek_70 { Mob 8014 Type drop 1 71001 1 20 2 71094 1 20 3 50821 3 160 4 50822 3 160 5 50823 3 160 6 50824 3 160 7 50825 3 160 8 50826 3 160 9 71044 3 160 10 71045 3 160 11 50118 5 120 12 71027 3 100 13 71028 3 100 14 71029 3 100 15 71030 3 100 16 80005 2 200 17 80006 2 160 18 80007 2 120 19 50107 2 160 20 14100 1 20 21 15080 1 20 22 17100 1 20 23 38056 1 200 24 38054 1 400 25 25040 1 180 26 71084 8 160 27 71085 8 160 } Group metek_75 { Mob 8024 Type drop 1 50513 1 15 2 71001 1 60 3 71094 1 60 4 80008 1 200 5 80005 3 160 6 80006 3 160 7 80007 3 160 8 50107 3 160 9 27987 3 160 10 13100 1 25 11 13120 1 25 12 13060 1 25 13 13080 1 25 14 15200 1 25 15 14200 1 25 16 16200 1 25 17 17200 1 25 18 12240 1 25 19 12380 1 25 20 12520 1 25 21 12660 1 25 22 140 1 25 23 150 1 25 24 1100 1 25 25 2140 1 25 26 3130 1 25 27 5100 1 25 28 7140 1 25 29 11290 1 25 30 11490 1 25 31 11690 1 25 32 11890 1 25 33 7140 1 25 34 38055 1 80 35 38054 1 400 36 25040 1 360 37 71084 10 200 38 71085 10 200 } Group metek_80 { Mob 8025 Type drop 1 50513 1 15 2 71001 1 60 3 71094 1 60 4 80008 1 200 5 80005 3 160 6 80006 3 160 7 80007 3 160 8 50107 3 160 9 27987 3 160 10 13100 1 25 11 13120 1 25 12 13060 1 25 13 13080 1 25 14 15200 1 25 15 14200 1 25 16 16200 1 25 17 17200 1 25 18 12240 1 25 19 12380 1 25 20 12520 1 25 21 12660 1 25 22 140 1 25 23 150 1 25 24 1100 1 25 25 2140 1 25 26 3130 1 25 27 5100 1 25 28 7140 1 25 29 11290 1 25 30 11490 1 25 31 11690 1 25 32 11890 1 25 33 7140 1 25 34 38055 1 80 35 38054 1 400 36 25040 1 360 37 71084 10 200 38 71085 10 200 } Group metek_85 { Mob 8026 Type drop 1 50513 1 15 2 71001 1 60 3 71094 1 60 4 80008 1 200 5 80005 3 160 6 80006 3 160 7 80007 3 160 8 50107 3 160 9 27987 3 160 10 13100 1 25 11 13120 1 25 12 13060 1 25 13 13080 1 25 14 15200 1 25 15 14200 1 25 16 16200 1 25 17 17200 1 25 18 12240 1 25 19 12380 1 25 20 12520 1 25 21 12660 1 25 22 140 1 25 23 150 1 25 24 1100 1 25 25 2140 1 25 26 3130 1 25 27 5100 1 25 28 7140 1 25 29 11290 1 25 30 11490 1 25 31 11690 1 25 32 11890 1 25 33 7140 1 25 34 38055 1 80 35 38054 1 400 36 25040 1 360 37 71084 10 200 38 71085 10 200 } Group metek_90 { Mob 8027 Type drop 1 50513 1 40 2 71001 1 60 3 71094 1 60 4 80008 1 200 5 80005 3 160 6 80006 3 160 7 80007 3 160 8 50107 3 160 9 27987 3 160 10 13100 1 25 11 13120 1 25 12 13060 1 25 13 13080 1 25 14 15200 1 25 15 14200 1 25 16 16200 1 25 17 17200 1 25 18 12240 1 25 19 12380 1 25 20 12520 1 25 21 12660 1 25 22 140 1 25 23 150 1 25 24 1100 1 25 25 2140 1 25 26 3130 1 25 27 5100 1 25 28 7140 1 25 29 11290 1 25 30 11490 1 25 31 11690 1 25 32 11890 1 25 33 7140 1 25 34 38055 1 80 35 38054 1 400 36 25040 1 360 37 71084 10 200 38 71085 10 200 } Group metek_setauo { Mob 8061 Type drop 1 50513 1 40 2 71001 1 80 3 71094 1 80 4 80008 1 120 5 80005 3 160 6 80006 3 160 7 80007 3 160 8 50107 3 160 9 27987 5 100 10 13100 1 25 11 13120 1 25 12 13060 1 25 13 13080 1 25 14 15200 1 25 15 14200 1 25 16 16200 1 25 17 17200 1 25 18 12240 1 25 19 12380 1 25 20 12520 1 25 21 12660 1 25 22 140 1 25 23 150 1 25 24 1100 1 25 25 2140 1 25 26 3130 1 25 27 5100 1 25 28 7140 1 25 29 11290 1 25 30 11490 1 25 31 11690 1 25 32 11890 1 25 33 33903 2 100 34 7140 1 25 35 38055 1 120 36 38054 1 400 37 25041 1 80 38 71084 15 120 39 71085 15 120 } Group metin_grota2 { Mob 8062 Type drop 1 50513 1 40 2 71001 1 80 3 71094 1 80 4 80008 1 120 5 80005 3 160 6 80006 3 160 7 80007 3 160 8 50107 3 160 9 27987 5 100 10 13100 1 25 11 13120 1 25 12 13060 1 25 13 13080 1 25 14 15200 1 25 15 14200 1 25 16 16200 1 25 17 17200 1 25 18 12240 1 25 19 12380 1 25 20 12520 1 25 21 12660 1 25 22 140 1 25 23 150 1 25 24 1100 1 25 25 2140 1 25 26 3130 1 25 27 5100 1 25 28 7140 1 25 29 11290 1 25 30 11490 1 25 31 11690 1 25 32 11890 1 25 33 33903 2 100 34 7140 1 25 35 38055 1 120 36 38054 1 400 37 25041 1 80 38 71084 15 120 39 71085 15 120 } Group metin_klamstwa_175 { Mob 8072 Type drop 1 50513 1 300 2 71001 1 200 3 71094 1 200 4 80008 7 200 5 80007 2 200 6 80006 2 200 7 80005 2 200 8 27987 15 200 9 33921 2 320 10 33922 2 320 11 33918 2 320 12 27992 4 320 13 27993 4 320 14 27994 4 320 15 33900 1 320 16 33901 1 320 17 33902 1 320 18 38055 1 320 19 38054 1 400 20 25041 1 280 21 71084 15 280 22 71085 15 280 } Group metek_piekiel_175 { Mob 8071 Type drop 1 50513 1 300 2 71001 1 200 3 71094 1 200 4 80008 7 200 5 80007 2 200 6 80006 2 200 7 80005 2 200 8 27987 15 200 9 33921 2 320 10 33922 2 320 11 33918 2 320 12 27992 4 320 13 27993 4 320 14 27994 4 320 15 33900 1 320 16 33901 1 320 17 33902 1 320 18 38055 1 320 19 38054 1 400 20 25041 1 280 21 71084 15 280 22 71085 15 280 } Group metek_pychy_150 { Mob 8039 Type drop 1 50513 1 300 2 71001 1 200 3 71094 1 200 4 80008 6 200 5 80007 2 200 6 80006 2 200 7 80005 2 200 8 27987 10 200 9 33917 2 320 10 33920 2 320 11 33915 1 320 12 38055 1 280 13 38054 1 400 14 25041 1 240 15 71084 15 240 16 71085 15 240 } Group metek_mroku_150 { Mob 8051 Type drop 1 50513 1 300 2 71001 1 200 3 71094 1 200 4 80008 6 200 5 80007 2 200 6 80006 2 200 7 80005 2 200 8 27987 10 200 9 33917 2 320 10 33920 2 320 11 33915 1 320 12 38055 1 280 13 38054 1 400 14 25041 1 240 15 71084 15 240 16 71085 15 240 } Group metek_podlosci_130 { Mob 8056 Type drop 1 50513 1 320 2 71001 1 120 3 71094 1 120 4 80008 5 200 5 80007 2 200 6 80006 2 200 7 80005 2 200 8 27987 10 200 9 33911 2 320 10 33912 2 320 11 33913 4 400 12 38055 1 240 13 38054 1 400 14 25041 1 200 15 71084 15 200 16 71085 15 200 } Group kolumnanemere { Mob 20399 Type drop 1 80008 1 200 2 80007 2 200 3 80006 2 200 4 80005 2 200 5 27987 10 200 6 33911 2 320 7 33912 2 320 8 33913 4 420 } Group metek_nieszczesca_130 { Mob 8055 Type drop 1 50513 1 320 2 71001 1 120 3 71094 1 120 4 80008 5 200 5 80007 2 200 6 80006 2 200 7 80005 2 200 8 27987 10 200 9 33911 2 320 10 33912 2 320 11 33913 4 400 12 38055 1 240 13 38054 1 400 14 25041 1 200 15 71084 15 200 16 71085 15 200 } Group metek_gniewu_110 { Mob 8054 Type drop 1 50513 1 120 2 71001 1 120 3 71094 1 120 4 80008 3 200 5 80007 2 200 6 80006 2 200 7 80005 2 200 8 27987 10 200 9 33907 2 320 10 33910 2 320 11 33904 2 320 12 38055 1 200 13 38054 1 400 14 25041 1 160 15 71084 15 160 16 71085 15 160 } Group metek_proznosci_90 { Mob 8083 Type drop 1 50513 1 200 2 71001 1 320 3 71094 1 320 4 80008 10 200 5 80005 2 400 6 80006 2 400 7 80007 2 400 8 50118 15 400 9 27987 15 350 10 33900 10 350 11 33901 10 350 12 33902 10 350 13 33938 1 85 14 33948 2 85 15 33949 2 85 16 33938 1 85 17 38055 1 400 18 38054 1 400 19 25041 1 360 20 71084 15 360 21 71085 15 360 } Group metek_proznosci_901 { Mob 8053 Type drop 1 50513 1 100 2 71001 1 100 3 71094 1 100 4 80008 2 200 5 80005 2 50 6 80006 2 50 7 80007 2 50 8 50118 15 50 9 27987 15 35 10 33900 10 35 11 33901 10 35 12 33902 10 35 13 33908 1 60 14 33909 2 60 15 33905 2 60 16 38055 1 160 17 38054 1 400 18 25041 1 120 19 71084 15 160 20 71085 15 160 21 71001 1 80 22 71094 1 80 } Group metek_zaru_901 { Mob 8052 Type drop 1 50513 1 100 2 71001 1 100 3 71094 1 100 4 80008 2 200 5 80005 2 50 6 80006 2 50 7 80007 2 50 8 50118 15 50 9 27987 15 35 10 33900 10 35 11 33901 10 35 12 33902 10 35 13 33908 1 60 14 33909 2 60 15 33905 2 60 16 38055 1 160 17 38054 1 400 18 25041 1 120 19 71084 15 160 20 71085 15 160 21 71001 1 80 22 71094 1 80 } Group metek_zaru_90 { Mob 8084 Type drop 1 50513 1 200 2 71001 1 320 3 71094 1 320 4 80008 10 200 5 80005 2 400 6 80006 2 400 7 80007 2 400 8 50118 15 400 9 27987 15 350 10 33900 10 350 11 33901 10 350 12 33902 10 350 13 33938 1 85 14 33948 2 85 15 33949 2 85 16 33938 1 85 17 38055 1 400 18 38054 1 400 19 25041 1 360 20 71084 15 360 21 71085 15 360 } Group 591 { Level_limit 1 Type limit Mob 591 1 33801 1 100 2 80008 1 50 3 50118 3 50 4 71001 1 20 5 71094 1 20 6 27987 5 50 7 38056 1 50 8 25040 1 100 } Group 691 { Level_limit 1 Type limit Mob 691 1 71001 1 20 2 71094 1 20 3 80005 2 30 4 80006 2 30 5 80007 2 30 6 50118 5 30 7 27987 5 30 8 27992 1 30 9 27993 1 30 10 27994 1 30 11 33974 1 4 12 33975 1 4 13 33802 1 100 14 33980 1 60 15 25040 1 100 } Group 693 { Level_limit 1 Type limit Mob 693 1 71001 1 20 2 71094 1 20 3 80005 2 30 4 80006 2 30 5 80007 2 30 6 50118 5 30 7 27987 5 30 8 27992 1 30 9 27993 1 30 10 27994 1 30 11 33974 1 3 12 33975 1 3 13 110 1 25 14 3100 1 25 15 1070 1 25 16 2100 1 25 17 5060 1 25 18 7100 1 25 19 33980 1 60 20 25040 1 100 21 25041 1 30 } Group 2091 { Level_limit 1 Type limit Mob 2091 1 71001 1 20 2 71094 1 20 3 80005 2 30 4 80006 2 30 5 80007 2 30 6 50118 5 50 7 27987 5 35 8 27992 1 35 9 27993 1 35 10 27994 1 35 11 33974 1 3 12 33975 1 3 13 33803 1 100 14 25040 1 100 } Group 2094 { Level_limit 1 Type limit Mob 2094 1 71001 1 20 2 71094 1 20 3 80005 2 30 4 80006 2 30 5 80007 2 30 6 50118 5 50 7 27987 5 35 8 27992 1 35 9 27993 1 35 10 27994 1 35 11 33974 1 3 12 33975 1 3 13 33804 1 100 14 25040 1 100 } Group Baronowna { Level_limit 1 Type limit Mob 2092 1 80008 3 50 2 80005 2 50 3 80006 2 50 4 80007 2 50 5 50513 1 15 6 50118 15 50 7 27987 15 35 8 27992 2 35 9 27993 2 35 10 27994 2 35 11 33974 1 3 12 33975 1 3 13 33805 1 100 14 33923 2 100 15 33898 1 100 16 33899 1 100 17 19001 1 2 18 71001 1 30 19 71094 1 30 20 25041 1 100 21 25040 2 100 } Group 1092 { Level_limit 1 Type limit Mob 1092 1 80008 2 30 2 80005 2 30 3 80006 2 30 4 80007 5 30 5 50118 5 30 6 27987 5 30 7 27992 1 30 8 27993 1 30 9 27994 1 30 10 33974 1 3 11 33975 1 3 12 71001 1 30 13 71094 1 30 } Group 993 { Level_limit 1 Type limit Mob 993 1 80008 2 50 2 80005 2 50 3 80006 2 50 4 80007 2 50 5 71001 1 50 6 50118 5 50 7 27987 5 35 8 27992 1 35 9 27993 1 35 10 27994 1 35 11 33974 1 3 12 33975 1 3 13 33807 1 100 14 71094 1 50 } Group 1304 { Level_limit 1 Type limit Mob 1304 1 80008 2 50 2 80005 2 50 3 80006 2 50 4 80007 2 50 5 50513 1 35 6 50118 5 50 7 27987 5 35 8 27992 1 35 9 27993 1 35 10 27994 1 35 11 33974 1 3 12 33975 1 3 13 33808 1 100 14 71001 1 50 15 71094 1 50 16 25040 1 100 } Group 791 { Level_limit 1 Type limit Mob 791 1 80008 2 50 2 80005 2 50 3 80006 2 50 4 80007 2 50 5 50513 1 35 6 50118 5 50 7 27987 5 35 8 27992 1 35 9 27993 1 35 10 27994 1 35 11 33974 1 3 12 33975 1 3 13 33808 1 100 14 71001 1 50 15 71094 1 50 16 25040 1 100 } Group 2206 { Level_limit 1 Type limit Mob 2206 1 80008 2 50 2 80005 2 50 3 80006 2 50 4 80007 2 50 5 50513 1 35 6 50118 5 50 7 27987 5 35 8 27992 1 35 9 27993 1 35 10 27994 1 35 11 33974 1 3 12 33975 1 3 13 33810 1 100 14 71001 1 50 15 71094 1 50 16 25040 1 60 } Group 5002 { Level_limit 1 Type limit Mob 5002 1 80008 2 50 2 80005 2 50 3 80006 2 50 4 80007 2 50 5 50513 1 35 6 50118 5 50 7 27987 5 35 8 27992 1 35 9 27993 1 35 10 27994 1 35 11 33974 1 3 12 33975 1 3 13 33811 1 100 14 71001 1 50 15 71094 1 50 16 25040 1 50 } Group 1191 { Level_limit 1 Type limit Mob 1191 1 80008 2 50 2 80005 5 50 3 80006 5 50 4 80007 5 50 5 50513 1 15 6 50118 5 50 7 27987 5 35 8 27992 1 35 9 27993 1 35 10 27994 1 35 11 33974 1 2 12 33975 1 2 13 33817 1 100 14 71001 1 50 15 71094 1 50 16 25041 3 30 17 71107 3 30 } Group xhuashingen { Level_limit 1 Type limit Mob 2495 1 80008 1 50 2 80005 2 50 3 80006 2 50 4 80007 2 50 5 50513 1 15 6 50118 10 50 7 27987 10 35 8 27992 2 55 9 27993 2 55 10 27994 2 55 11 33974 1 3 12 33975 1 3 13 33817 1 100 14 19002 1 2 15 33903 2 100 16 33981 1 100 17 71001 1 50 18 71094 1 50 19 25041 1 50 } Group silna_wiedzma { Level_limit 1 Type limit Mob 1192 1 80008 1 50 2 80005 2 50 3 80006 2 50 4 80007 2 50 5 50118 10 50 6 27987 10 35 7 27992 2 55 8 27993 2 55 9 27994 2 55 10 33974 1 3 11 33975 1 3 12 33817 1 100 13 19002 1 2 14 33903 2 100 15 33981 1 100 16 71001 1 50 17 71094 1 50 18 25040 3 50 19 25041 1 40 } Group 2191 { Level_limit 1 Type limit Mob 2191 1 80008 1 50 2 80005 1 50 3 80006 1 50 4 80007 1 50 6 50118 5 50 7 27987 5 35 8 27992 1 35 9 27993 1 35 10 27994 1 35 11 33974 1 3 12 33975 1 3 13 33812 1 100 14 71001 1 30 15 71094 1 30 16 25040 1 80 } Group 2101 { Level_limit 1 Type limit Mob 2101 1 33813 1 100 } Group skouman { Level_limit 1 Type limit Mob 3903 1 80008 3 50 2 80005 2 50 3 80006 2 50 4 80007 2 50 5 50513 1 15 6 50118 10 50 7 27987 5 35 8 27992 1 35 9 27993 1 35 10 27994 1 35 11 33974 1 3 12 33975 1 3 13 33814 1 100 14 30197 2 100 15 71001 1 50 16 71094 1 50 } Group wierzbolud { Level_limit 1 Type limit Mob 3901 1 80008 3 50 2 80005 2 50 3 80006 2 50 4 80007 2 50 5 50513 1 15 6 50118 10 50 7 27987 5 35 8 27992 1 35 9 27993 1 35 10 27994 1 35 11 33974 1 3 12 33975 1 3 13 33815 1 100 14 30197 2 100 15 71001 1 50 16 71094 1 50 } Group eoten { Level_limit 1 Type limit Mob 3902 1 80008 3 50 2 80005 2 50 3 80006 2 50 4 80007 2 50 5 50513 1 15 6 50118 10 50 7 27987 5 35 8 27992 1 35 9 27993 1 35 10 27994 1 35 11 33974 1 3 12 33975 1 3 13 33816 1 100 14 30197 2 100 15 71001 1 50 16 71094 1 50 } Group 1901 { Level_limit 1 Type limit Mob 1901 1 80008 1 50 2 80005 1 50 3 80006 1 50 4 80007 1 50 5 50513 1 15 6 50118 5 50 7 27987 5 35 8 27992 1 35 9 27993 1 35 10 27994 1 35 11 33974 1 3 12 33975 1 3 13 33806 1 100 14 71001 1 35 15 71094 1 35 } Group wladca_duchow_drzew { Level_limit 1 Type limit Mob 2307 1 80008 2 50 2 80005 2 50 3 80006 2 50 4 80007 2 50 5 50513 1 15 6 50118 10 50 7 27987 5 35 8 27992 1 35 9 27993 1 35 10 27994 1 35 11 33974 1 3 12 33975 1 3 13 33814 1 100 14 30197 2 100 15 71001 1 50 16 71094 1 50 } Group 1093 { Level_limit 1 Type limit Mob 1093 1 80008 2 50 2 80005 2 50 3 80006 2 50 4 80007 2 50 5 50513 1 25 6 50118 15 50 7 27987 15 35 8 27992 2 35 9 27993 2 35 10 27994 2 35 11 33974 1 3 12 33975 1 3 13 33818 1 100 14 33898 1 100 15 33899 1 100 16 71001 1 50 17 71094 1 50 } Group brutalny_czerwony_wodz { Level_limit 1 Type limit Mob 3596 1 33902 4 50 2 33925 2 100 3 33898 1 100 4 33899 1 100 5 80008 3 100 6 80005 2 100 7 80006 2 100 8 80007 2 100 9 33904 2 100 10 50118 25 50 11 27987 25 100 12 27992 7 100 13 27993 7 100 14 27994 7 100 15 33974 1 4 16 33975 1 4 17 33935 3 100 18 33900 4 50 19 33901 4 50 20 33899 1 100 21 33898 1 100 22 71001 1 50 23 71094 1 50 24 50513 1 25 25 71051 1 20 26 71052 1 10 } Group 1095 { Level_limit 1 Type limit Mob 1095 1 80008 1 25 2 80005 1 25 3 80006 1 25 4 80007 1 25 5 50513 1 25 6 50118 25 50 7 27987 20 35 8 27992 2 35 9 27993 2 35 10 27994 2 35 11 33974 1 4 12 33975 1 4 13 33819 1 100 14 33933 2 100 15 33898 1 100 16 33899 1 100 17 71001 1 50 18 71094 1 50 19 71051 1 20 20 71052 1 10 } Group general_yonghan { Level_limit 1 Type limit Mob 2492 1 80008 2 50 2 80005 2 50 3 80006 2 50 4 80007 2 50 5 50513 1 15 6 50118 10 50 7 27987 10 35 8 27992 2 55 9 27993 2 55 10 27994 2 55 11 33974 1 3 12 33975 1 3 13 33903 2 100 14 33820 1 100 15 71001 1 50 16 71094 1 50 } Group razador { Level_limit 1 Type limit Mob 6091 1 33821 1 100 2 33925 2 100 3 33898 1 100 4 33899 1 100 5 80008 5 100 6 80005 3 100 7 80006 3 100 8 80007 3 100 9 50513 1 35 10 50118 25 50 11 27987 25 100 12 27992 12 100 13 27993 12 100 14 27994 12 100 15 33974 1 5 16 33975 1 5 17 33934 3 100 18 33900 7 50 19 33901 7 50 20 33902 7 50 21 71001 1 50 22 71094 1 50 23 71051 1 20 24 71052 1 10 } Group nemere { Level_limit 1 Type limit Mob 6999 1 33822 1 100 2 33925 2 100 3 33898 1 100 4 33899 1 100 5 80008 5 100 6 80005 4 100 7 80006 4 100 8 80007 4 100 9 50118 35 50 10 27987 35 100 11 27992 15 100 12 27993 15 100 13 27994 15 100 14 33974 1 5 15 33975 1 5 16 33934 2 100 17 33898 1 100 18 33899 1 100 19 33900 9 50 20 33901 9 50 21 33902 9 50 22 33913 4 300 23 71001 1 50 24 71094 1 50 25 71051 1 20 26 71052 1 10 27 33992 1 0 } Group azrael { Level_limit 1 Type limit Mob 2598 1 80008 7 100 2 80007 5 100 3 80006 5 100 4 80005 5 100 5 27992 18 50 6 27993 18 50 7 27994 18 50 8 33900 12 50 9 33901 12 50 10 33902 12 50 11 33974 1 5 12 33975 1 5 13 33823 1 100 14 33927 4 100 15 33898 1 100 16 33899 1 100 17 33924 4 100 18 33917 4 100 19 33920 2 100 20 71001 1 50 21 71094 1 50 22 71051 1 20 23 71052 1 10 24 33993 1 0 } Group charon { Level_limit 1 Type limit Mob 2597 1 33824 1 100 2 80008 1 100 3 27992 3 40 4 27993 3 40 5 27994 3 40 6 33900 3 40 7 33901 3 40 8 33902 3 40 9 27987 25 100 } Group beran_setaou { Level_limit 1 Type limit Mob 2493 1 80008 8 100 2 80007 5 100 3 80006 5 100 4 80005 5 100 5 27992 5 40 6 27993 5 40 7 27994 5 40 8 33900 25 100 9 33901 25 100 10 33902 25 100 11 33926 2 100 12 33898 1 100 13 33899 1 100 14 33931 2 100 15 33921 2 100 16 33922 2 100 17 50513 1 35 18 50118 50 100 19 33937 6 100 20 33920 2 100 21 33932 2 100 22 33946 5 90 23 71051 1 50 24 71052 1 80 25 33943 1 100 26 33947 1 80 27 33942 1 80 28 33949 1 80 29 27987 30 50 30 71001 2 50 31 71094 2 50 } Group czerwony_smok { Level_limit 1 Type limit Mob 2291 1 80008 10 100 2 80007 5 100 3 80006 5 100 4 80005 5 100 5 27992 10 50 6 27993 10 50 7 27994 10 50 8 33900 45 100 9 33901 45 100 10 33902 45 100 11 33936 2 100 12 33898 2 100 13 33899 2 100 14 33937 2 100 15 50513 1 100 16 50118 60 100 17 33825 1 100 18 19003 1 2 19 33932 5 100 20 19006 1 2 21 34052 1 50 22 34050 1 50 23 34051 1 50 24 33836 1 50 25 19007 1 5 26 19008 1 5 27 33050 1 50 28 33051 1 50 29 71052 1 20 30 71051 1 20 31 33943 1 90 32 33943 5 100 33 33947 5 80 34 33942 5 80 35 33949 3 50 36 71001 2 50 37 71094 2 50 } Kto wstawia do rootów swoje mob_drop_item.txt ? xD
  18. 4 points
    [Hidden Content] Dodaj tego liba do /usr/lib/ albo /usr/lib32/, już nie pamiętam, możesz tu i tu. Potem w katalogu : /usr/home/official_web/official_web/share/locale/europe/quest/ użyj ./qc wszystkie questy powinny działać
  19. 4 points
    [Hidden Content] [Hidden Content]
  20. 4 points
    Pobieranie: Source FreeBSD 9.3 32bit Source FreeBSD 12 32bit dragon_soul_table.txt Konfiguracja: FreeBSD 9.3 32bit Instalujemy wymagane porty: pkg install gmake makedepend subversion devil gcc48 python Pobrane source wrzucamy do głównego katalogu następnie wpisujemy: cd / && tar zxvf Source_game_db_dedyk.tgz Pobrany plik dragon_soul_table.txt wrzucamy do usr/home/mt2/share/locale/poland i ustawiamy na nim prawa 777 FreeBSD 12 32bit Wchodzimy do /etc/pkg edytujemy tam plik FreeBSD.conf i szukamy w nim: url: "pkg+[Hidden Content]}", Zamieniamy powyższą linijkę na: url: "pkg+[Hidden Content]}/release_1", Zapisujemy plik i wpisujemy: pkg update Instalujemy wymagane porty: pkg install gmake makedepend boost-all googletest devil llvm-devel cryptopp Gdy już się zainstalowało łączymy się z WinSCP i przechodzimy do /usr/local/include/cryptopp/ szukamy i edytujemy plik config.h, szukając w nim: #define CRYPTOPP_BOOL_ALIGN16 1 Zamieniamy powyższą linijkę na: #define CRYPTOPP_BOOL_ALIGN16 0 Pobrane source wrzucamy do głównego katalogu następnie wpisujemy cd / && tar zxvf Source_12.gz Pobrany plik dragon_soul_table.txt wrzucamy do usr/home/mt2/share/locale/poland i ustawiamy na nim prawa 777
  21. 4 points
    Cześć jak każdy wie w Metin2 gdy weźmiemy na siebie dużo potworów występują lagi, opóźnienia - Dziś wam pokażę jak to naprawić. Podgląd problemu i porównanie PRZED i PO dodaniu - Zwróć uwagę na Czat i opóźnienie w nim występujące Aby naprawić ten problem wejdź do: Otwórz plik w bince - PythonNetworkStreamPhaseGame.cpp Znajdź const DWORD MAX_RECV_COUNT = Zamień na: const DWORD MAX_RECV_COUNT = 32;
  22. 4 points
    Ascarial Panele logowania + strona PSD + kod [Hidden Content] Pliki psd + py takze bez skanu
  23. 4 points
    Witam i łapcie sety od Bombwork'a BOMBWORK_New.rar Skan: [Hidden Content]
  24. 4 points
    Jest spoko ale Spoko oko wszystko działa przetestowane i m2bob papa
  25. 4 points
    Kiedyś na forum kokosza react wrzucał sporą paczke fixów, wam pewnie też się przydadzą [FIX] Dwie osoby kupują ten sam przedmiot w tym samym czasie (wywala klienta) [FIX] Wywalenie serwera za pomocą obiektów (dodanie do gildii) [FIX] Wywalanie yangów (obciążenie do tego stopnia aż kanał siada) [FIX] Expienie drugiej postaci na odległość (otrzymanie doświadczenia pomimo dwóch różnych lokacji) [FIX] Czarowane Ostrze (raczej każdy wie na czym on polega) [FIX] Prawdopodobny fix skoków hp/sp (podczas np. użycia sarży lub krycia się) [FIX] Naprawa slotów w Smoczej Alchemii [FIX] Niewidzialność postaci po zalogowaniu/teleporcie (pakiet) [FIX] Odbugowanie wojen gildii (komenda /war) [FIX] Brak możliwości stworzenia sklepu na wierzchowcu [FIX] -32k HP postaci po teleporcie bądź logowaniu [FIX] Drop przedmiotów (z potworów/metinów raz na milion killów leci przedmiot, który nie jest przypisany do dropu) [FIX] Teleportacja członka grupy do lidera (np. jesteśmy w m1, a poprzez kamer moda wzywamy gracza do siebie) [FIX] SQL Injection (Przyjaciele i Gildia) [FIX] Odbugowanie Zwoju Boga Smoków (+10% szans na ulepszenie)
  26. 4 points
    Good luck constInfo.py ''' ADD SOMEWHERE ''' HP_ANIMATION_SHOW = True # Enable HP_ANIMATION_TARGET uiTarget.py ''' ON THE TOP OF THE FILE ADD import constInfo ''' ''' ------------------------ ''' ''' BEFORE hpGauge = ui.Gauge() hpGauge.SetParent(self) hpGauge.MakeGauge(130, "red") ADD ''' if constInfo.HP_ANIMATION_SHOW == True: hpAnimationGauge = ui.Gauge() hpAnimationGauge.SetParent(self) hpAnimationGauge.SetPosition(175, 17) hpAnimationGauge.MakeGauge(130, "yellow") hpAnimationGauge.SetWindowHorizontalAlignRight() hpAnimationGauge.Hide() hpAnimationGauge.nextUpdate = 0.0 hpAnimationGauge.middleUpdate = 0.0 ''' BEFORE self.closeButton = closeButton self.nameString = 0 ADD ''' if constInfo.HP_ANIMATION_SHOW == True: self.hpAnimationGauge = hpAnimationGauge ''' INSIDE def Destroy(self): BEFORE self.__Initialize() ADD ''' if constInfo.HP_ANIMATION_SHOW == True: self.hpAnimationGauge = None ''' INSIDE def ResetTargetBoard(self): AFTER self.hpGauge.Hide() ADD ''' if constInfo.HP_ANIMATION_SHOW == True: self.hpAnimationGauge.Hide() ''' INSIDE def SetHP(self, hpPercentage, iMinHP, iMaxHP): AFTER self.name.SetWindowHorizontalAlignLeft() self.name.SetHorizontalAlignLeft() self.hpGauge.Show() self.UpdatePosition() ADD ''' if constInfo.HP_ANIMATION_SHOW == True: if self.hpAnimationGauge.IsShow(): calc = self.hpAnimationGauge.GetPercentage()[0] - hpPercentage if calc > 0: self.hpAnimationGauge.SetPercentage(self.hpGauge.GetPercentage()[0], self.hpGauge.GetPercentage()[1]) self.hpAnimationGauge.middleUpdate = 0.75 / float(calc) self.hpAnimationGauge.nextUpdate = app.GetTime() + self.hpAnimationGauge.middleUpdate else: self.hpAnimationGauge.SetPercentage(hpPercentage, 100) self.hpAnimationGauge.Show() ''' SHOULD LOOK LIKE [Hidden Content] ''' ''' AFTER def OnUpdate(self): ADD ''' if constInfo.HP_ANIMATION_SHOW == True: if self.hpAnimationGauge and self.hpAnimationGauge.IsShow() and self.hpAnimationGauge.nextUpdate <= app.GetTime(): dif = self.hpAnimationGauge.GetPercentage()[0] - self.hpGauge.GetPercentage()[0] if dif > 0: val = max(1, int(dif / 3)) if self.hpAnimationGauge.GetPercentage()[0] > self.hpAnimationGauge.GetPercentage()[1]: return self.hpAnimationGauge.nextUpdate = app.GetTime() + self.hpAnimationGauge.middleUpdate self.hpAnimationGauge.SetPercentage(self.hpAnimationGauge.GetPercentage()[0] - val, self.hpAnimationGauge.GetPercentage()[1]) ''' UR hpGauge can be different, its have to look same as hpAnimationGauge for example: [Hidden Content] ''' ui.py ''' Change all ''' class Gauge(Window): SLOT_WIDTH = 16 SLOT_HEIGHT = 7 GAUGE_TEMPORARY_PLACE = 12 GAUGE_WIDTH = 16 def __init__(self): Window.__init__(self) self.width = 0 def __del__(self): Window.__del__(self) def MakeGauge(self, width, color): self.width = max(48, width) imgSlotLeft = ImageBox() imgSlotLeft.SetParent(self) imgSlotLeft.LoadImage("d:/ymir work/ui/pattern/gauge_slot_left.tga") imgSlotLeft.Show() imgSlotRight = ImageBox() imgSlotRight.SetParent(self) imgSlotRight.LoadImage("d:/ymir work/ui/pattern/gauge_slot_right.tga") imgSlotRight.Show() imgSlotRight.SetPosition(width - self.SLOT_WIDTH, 0) imgSlotCenter = ExpandedImageBox() imgSlotCenter.SetParent(self) imgSlotCenter.LoadImage("d:/ymir work/ui/pattern/gauge_slot_center.tga") imgSlotCenter.Show() imgSlotCenter.SetRenderingRect(0.0, 0.0, float((width - self.SLOT_WIDTH*2) - self.SLOT_WIDTH) / self.SLOT_WIDTH, 0.0) imgSlotCenter.SetPosition(self.SLOT_WIDTH, 0) imgGauge = ExpandedImageBox() imgGauge.SetParent(self) imgGauge.LoadImage("d:/ymir work/ui/pattern/gauge_" + color + ".tga") imgGauge.Show() imgGauge.SetRenderingRect(0.0, 0.0, 0.0, 0.0) imgGauge.SetPosition(self.GAUGE_TEMPORARY_PLACE, 0) imgSlotLeft.AddFlag("attach") imgSlotCenter.AddFlag("attach") imgSlotRight.AddFlag("attach") self.imgLeft = imgSlotLeft self.imgCenter = imgSlotCenter self.imgRight = imgSlotRight self.imgGauge = imgGauge self.curValue = 100 self.maxValue = 100 self.currentGaugeColor = color self.SetSize(width, self.SLOT_HEIGHT) def SetColor(self, color): if (self.currentGaugeColor == color): return self.currentGaugeColor = color self.imgGauge.LoadImage("d:/ymir work/ui/pattern/gauge_" + color + ".tga") self.SetPercentage(self.curValue, self.maxValue) def SetPercentage(self, curValue, maxValue): self.curValue2 = curValue self.maxValue = maxValue # PERCENTAGE_MAX_VALUE_ZERO_DIVISION_ERROR if maxValue > 0.0: percentage = min(1.0, float(curValue) / float(maxValue)) else: percentage = 0.0 # END_OF_PERCENTAGE_MAX_VALUE_ZERO_DIVISION_ERROR gaugeSize = -1.0 + float(self.width - self.GAUGE_TEMPORARY_PLACE * 2) * percentage / self.GAUGE_WIDTH self.imgGauge.SetRenderingRect(0.0, 0.0, gaugeSize, 0.0) def GetPercentage(self): return (self.curValue2, self.maxValue,)
  27. 3 points
    Hej daje wam oficialne okno statystyk [Hidden Content] locale dosyalari.rar
  28. 3 points
    Cześć, zapłaciłem pieniążki oszustowi Ikarusowi. Wysłałem autorowi obejście, tłumacząc by sobie zabezpieczył to zamiast mi podziękować mnie zbanował xD Straciłem support, możliwe że te sklepy mają kopiowanie itemów. SKLEPY OFFLINE.rar Obejście licencji #include "stdafx.h" #include "Offlineshop2.h" bool Offlineshop_InitializeLibrary(const char * szUser, const char* szPassword) { return true; }; void Offlineshop_CleanUpLibrary() { return; }; bool TestLibrary() { return true; }; size_t Offlineshop_GetMapCount() { return 1; }; //1 void Offlineshop_GetNewPos(size_t index, size_t ent_count, long* x, long* y) { //todo *x = rand() % (83100 - 76400) + 76400; *y = rand() % (328400 - 320200) + 320200; // 76400 320200 // 83100 328400 //*x = 78800; //*y = 323900; }; // 0 0 -26472 -26468 void Offlineshop_GetMapIndex(size_t index, int* map_index) { *map_index = 2; }; // 0 2 bool Offlineshop_CheckPositionDistance(long x1, long y1, long x2, long y2) { //todo return true; }; // 80029 324042 79408 323601 Na 99% czegoś brakuje, dajcie mi znać to na bieżąco będę Wam wyciągał. Publikuje te sklepy tylko i wyłącznie dlatego że zostałem oszukany, w innym przypadku nie publikuje innych prac. Doceniam kogoś pracę.
  29. 3 points
    ja mam. Ticketsystem v1.2 ~ Shang.rar
  30. 3 points
    Pokaże Wam jak naprawić Zwój Boga Smoków by dodawał +10% do szansy na ulepszenie. Wejdź do pliku char_item.cpp w /game/src/ Szukamy: if (pkItemScroll->GetValue(0) == YONGSIN_SCROLL) { if (LC_IsYMIR() == true || LC_IsKorea() == true) success_prob = hyuniron_prob_euckr[MINMAX(0, item->GetRefineLevel(), 8)]; else success_prob = hyuniron_prob[MINMAX(0, item->GetRefineLevel(), 8)]; } Zamień na: if (pkItemScroll->GetValue(0) == YONGSIN_SCROLL) { success_prob = MINMAX(1, prt->prob+10, 100); } Szukamy: p.prob = prt->prob; Pod dodajemy: LPITEM itemScroll = GetInventoryItem(iAdditionalCell); if (itemScroll && itemScroll->GetValue(0) == YONGSIN_SCROLL) p.prob = MIN(100, prt->prob + 10); Szukamy i komentujemy: const char hyuniron_prob[9] = { 100, 75, 65, 55, 45, 40, 35, 25, 20 }; const char hyuniron_prob_euckr[9] = { 100, 75, 65, 55, 45, 40, 35, 30, 25 }; Gotowe! Skompiluj Game&DB Pozdrawiam * To tylko przedsmak tego co dla Was przygotowałem proszę daj + by zmotywować mnie do dalszego działania.[/align]
  31. 3 points
    Unlucky #define LOCALE_SERVICE_SINGAPORE // ½Ì°¡Æú #define ENABLE_COSTUME_SYSTEM // Costume System #define ENABLE_ENERGY_SYSTEM // Energy System #define ENABLE_DRAGON_SOUL_SYSTEM // Dragon Soul System #define ENABLE_NEW_EQUIPMENT_SYSTEM // New equipement system (belt) #define VERSION 4969 /// Login UI ------------------------ // Server Select Renewal (08.09.2018) #define ENABLE_SERVER_SELECT_RENEWAL #define ENABLE_CHANNEL_LIST #define LOGIN_COUNT_DOWN_UI_MODIFY /// --------------------------------- /// Todo List ------------------------------- #define ENABLE_WOLFMAN_CHARACTER // Enable Wolfman character #ifdef ENABLE_WOLFMAN_CHARACTER // #define DISABLE_WOLFMAN_CREATION // Disable Wolfman creation #define ENABLE_PLAYER_PER_ACCOUNT5 // Enable 5 players per account #endif #define ENABLE_MESSENGER_LOCK_FIX /// ----------------------------------------- /// OSP.TMP_WORK #define ENABLE_PARTY_CHALLENGE_SYSTEM // Party challenge #define ENABLE_SECONDARY_ACCE_COSTUME_SYSTEM // Acce costume #define ENABLE_ALIGNMENT_AFFECT // Alignment affect /// OSP.WORK #define ENABLE_678TH_SKILL // New 678th skills #define ENABLE_CHEQUE_SYSTEM // New currency (cheque) #define ENABLE_MINI_GAME_OKEY // Mini game rumi (okey) #define ENABLE_MINI_GAME_CATCH_KING // Mini game catch king #define ENABLE_GEM_SYSTEM // Gem market and new curreny (gaya) #define ENABLE_EXTEND_INVEN_SYSTEM // Extended inventory pages (4) #define ENABLE_ENVIRONMENT_EFFECT_OPTION // Environment options #define ENABLE_TAB_NEXT_TARGET // Enable next target on key tab #define ENABLE_ITEM_DROP_RENEWAL // Renewal of item drops with color effect #define ENABLE_SEND_TARGET_INFO // Monsters information #define ENABLE_OFFLINE_SHOP_SYSTEM // Offline private shop #define ENABLE_SPECIAL_INVENTORY_SYSTEM // Special inventory #define ENABLE_AUTO_REFINE // Auto refinement option #define ENABLE_NEW_BLEND_AFFECT // New blend affects with icon #define ENABLE_CAPTCHA_SYSTEM // Captcha input #define ENABLE_12ZI // 12ZI mission notice (without dungeon) #define ENABLE_DUNGEON_INFO_SYSTEM // Dungeon informations #define ENABLE_GENDER_ALIGNMENT // Gender alignment (m, f) #define ENABLE_NEW_DROP_DIALOG // New drop dialog with remove item option #define ENABLE_GUILD_LEADER_GRADE_NAME // Shows guild leader grade name on text tail #define ENABLE_MESSENGER_GM // Messenger gm list #define ENABLE_MESSENGER_BLOCK // Messenger block #define ENABLE_DETAILS_UI // Character details (bonus page) #define ENABLE_QUIVER_SYSTEM // Quiver #define ENABLE_NEW_USER_CARE // User care #define ENABLE_SWAP_SLOT_SYSTEM // Swap item slot #ifdef ENABLE_SWAP_SLOT_SYSTEM #define ENABLE_SWAP_SLOT_DIFFUSE_COLOR // Swap item slot diffuse color on over event #endif #define ENABLE_VIEW_TARGET_DECIMAL_HP // View targets decimal hp #ifdef ENABLE_VIEW_TARGET_DECIMAL_HP #define ENABLE_VIEW_TARGET_PLAYER_HP // View target player's hp #endif #define ENABLE_CHANGE_LOOK_SYSTEM // Change look of item #define ENABLE_HIDE_COSTUME_SYSTEM // Hide costume parts #define ENABLE_EXPRESSING_EMOTION // Special actions #define ENABLE_REFINE_FAIL_TYPE // Extended refine fail message #define ENABLE_GACHA // ENABLE_BOSS_BOX Gacha boxes (x use time) #define ENABLE_ELEMENT_ADD // Monsters element #define ENABLE_TEXT_IMAGE_LINE // Image in text line #define ENABLE_PENDANT // Talismans of elements #define ENABLE_GROWTH_PET_SYSTEM // Growth pet system w/ item type #define ENABLE_IMAGE_SCALE // Image box scaling #define ENABLE_SPECIAL_PVP_DUEL_OPTION // Special PvP duel with arguments (without critcal, penetration, posion and others...) #define ENABLE_EMOTION_HIDE_WEAPON // Hide weapon while acting emotions #define ENABLE_LOADING_TIP // Show loading tip #define ENABLE_SOUL_BIND_SYSTEM // Soul bind items #define ENABLE_QUEST_RENEWAL // Quest page renewal // #define ENABLE_ENB_MODE // ENB Mode (HD) #define ENABLE_GUILD_DRAGONLAIR_SYSTEM // Guild dragon lair dungeon #ifdef ENABLE_GUILD_DRAGONLAIR_SYSTEM #define ENABLE_GUILD_DRAGONLAIR_PARTY_SYSTEM #define GUILD_DRAGONLAIR_STONE 6118 // Guild dragon lair statue vnum #endif #define ENABLE_DISABLE_SOFTWARE_TILING // Disable software tiling #define ENABLE_GRAPHIC_ON_OFF // System graphic options #define ENABLE_DOG_MODE // Dog mode (all monsters with dog model) #define ENABLE_EXTENDED_BLEND_AFFECT // Extended blend item affect #define ENABLE_MOVE_CHANNEL // Move game channel #define ENABLE_MAILBOX_SYSTEM // Mailbox system #if defined(ENABLE_MAILBOX_SYSTEM) #define ENABLE_PORTABLE_MAILBOX // Enable portable Mailbox system #endif #define ENABLE_GUI_SELECT // Select alternative GUI #define ENABLE_QUICK_PICKUP // Fast pickup close items #define ENABLE_SHOPEX_RENEWAL // ShopEX renewal #ifdef ENABLE_SHOPEX_RENEWAL #define ENABLE_SHOPEX_TAB4 // ShopEx 4 tabs #endif #define ENABLE_SOUL_SYSTEM // Soul system #define ENABLE_SKILL_COLOR_SYSTEM // Skill color #ifdef ENABLE_SKILL_COLOR_SYSTEM #define ENABLE_5LAYER_SKILL_COLOR // Enable 5 layers for skill color #endif #define ENABLE_DS_GRADE_MYTH // Dragon soul mythical grade #define ENABLE_PRIVATE_SHOP_SEARCH_SYSTEM // Private shop search #define ENABLE_DSS_ACTIVE_EFFECT_BUTTON // Dragon soul active effect button #define ENABLE_DSS_EXTENDED_RECHARGE // Dragon soul extended recharge #define ENABLE_EXTENDED_ITEM_COUNT // Extend the amount of items #define ENABLE_ITEM_SOCKET5 // Extend item sockets #define ENABLE_STONE_OF_BLESS // Stone of bless (refinement item) #define ENABLE_DICE_SYSTEM // New dice system #define ENABLE_DS_SET // Dragon soul table handling #define ENABLE_MULTI_LANGUAGE_SYSTEM // Multi language system #define ENABLE_COSTUME_EXTENDED_RECHARGE // Costume extended recharge #define ENABLE_BATTLE_PASS_SYSTEM // Battle pass system #define ENABLE_PLAYER_PIN_SYSTEM // Player PIN Code #define ENABLE_SKILLBOOK_COMB_SYSTEM // Skill book combination #define ENABLE_67TH_BONUS // 6th and 7th rare bonus (classic) #define ENABLE_MAGIC_REDUCTION // Magic Reduction #define ENABLE_SWITCHBOT_SYSTEM // Attribute switcher (switch bot) #define ENABLE_EXTENDED_WHISPER_DETAILS // Extended whisper target inforamtion, created mainly for multi language country flag but can be used for other information. // #define ENABLE_ITEM_POWER_SYSTEM // Item power #define ENABLE_CHANNEL_STATUS_UPDATE // Channel player count /// WJ_WORK #define WJ_NEW_USER_CARE // User care #define WJ_SHOW_MOB_INFO // Show monsters level & aggressive flag #define WJ_ENABLE_PICKUP_ITEM_EFFECT // Pickup item effect #define WJ_ENABLE_TRADABLE_ICON // Block un-tradable items #define WJ_MULTI_TEXTLINE // Multi textline /// Costume Systems #define ENABLE_MOUNT_COSTUME_SYSTEM // Mount costume #define ENABLE_ACCE_COSTUME_SYSTEM // Acce costume #define ENABLE_WEAPON_COSTUME_SYSTEM // Weapon costume #define ENABLE_COSTUME_ATTR_SYSTEM // Costume attributes /// Fixes & Others #define ENABLE_FOG_FIX // Fog fix for new environment effect #define ENABLE_EFFECT_CAMERA_VIEW_FIX // Effect camera view fix #define REMOVE_SAFEZONE_COLLISION // Remove npc collision in safe zone. #define REMOVE_SHOP_COLLISION // Remove shop collision #define REMOVE_HORSE_COLLISION // Remove horse collision #define REMOVE_OX_PLAYER_COLLISION // Remove player collision in ox event map #define DISABLE_SEND_SEQUENCE // Disable send sequence #define DISABLE_INDEX_FILE // Disable index file from client #define ENABLE_MD5_FILE_CHECK // Enable MD5 file check from client #define ENABLE_ETER_PACK_OBSCURING // Enable EterPack key obscuring (hide heys from binary) #define ENABLE_CONFIG_MODULE // Enable configuration module for saving settings #define ENABLE_IMPROVED_LOGOUT_POINTS // Enable improved logout points which shows the last player status points and parts on intro select #define ENABLE_IMAGE_CLIP_RECT // Enable image clipping for borders #define ENABLE_DISCORD_RPC // Enable discord rpc // #define ENABLE_FOX_FS // Enable FoxFS Pack #define CEF_BROWSER // CEF Browser // #define ENABLE_PATCH_CHECK // Enable patch check // #define ENABLE_CYTHON // Enable CYTHON #define ENABLE_MAP_LOCATION_APP_NAME // Enable map location on the app name #define ENABLE_ATLAS_MARK_INFO // Enable atlas mark info from client #define ENABLE_SAME_SELL_PRICE // Buy & Sell prices are them same #define ENABLE_SKILL_COOLTIME_UPDATE // Refresh skill cooldown after death #define ENABLE_HEART_BEAT_MALL // Enable heart beat effect on mall icon according to health points #define ENABLE_FOV_OPTION // Enable extended field of view game option VirusTotal : [Hidden Content]
  32. 3 points
    Ja podmieniłem pliki serwerowe z tematu wrzuciłem do gotowej maszyny udostępnionej przez patryk12d. Wgrałem też z tych plików bazę player i zadziałało surekpizda_sf.tar.xz player.tar.xz
  33. 3 points
    Poniższy kod jest przykładem dodawanym do special_item_group. Możesz umieścić tyle bonusów, ile tylko chcesz. Group przedmiot_pvp { Vnum 10052 type special 1 71158 110001 1 -- Przedmiot } Group bonus_przedmiot { Vnum 110001 type ATTR 1 66 10 2 7 20 3 63 10 4 1 1000 } Download: [Hidden Content] Virustotal: [Hidden Content]
  34. 3 points
    Animatedset_v7_drshop.7z
  35. 3 points
    Usunięte na prośbe autora.
  36. 3 points
    Przeszukując odmęty internetów znalazłem poprawionego(?) Biologa. Nie testowane Wygląda to tak: [Hidden Content] Professional Biolog Full - Reworked.rar [Hidden Content]
  37. 3 points
    W chwili obecnej pokazuje mi po wpisaniu komendy nic, zaraz zobacze czy funkcjonuje. U mnie dalej jest problem z tarcza i butami wiatru Dalej nie dziala ... Tworzę nowy quest , misję o nazwie start.quest < Edytuje wprowadzam przedmioty na start Nadaje mu prawa 777 , dopisuje go do list quest. Wchodzę do konsoli wpisuję sciezkę i komendę na qc, niby jest ok, ale w konsoli nic nie ma ze cos dodal czy cos zmienil tylko wyskakuje od razu Wchodze do gry wpisuje /reload q Tworze nowa postac i nic. [email protected]:/usr/home/official_web/official_web/share/locale/europe/quest # ./pre_qc.py -a [email protected]:/usr/home/official_web/official_web/share/locale/europe/quest Tyle dalej jest problem, nie wiem jak u innych ale prosilbym o kontakt.
  38. 3 points
    Witam! Zbroje są exportowane przez Ridack'a Pobierz: [Hidden Content] Haslo do paczki: H'U}MbyD8bs,5zNt Skan: [Hidden Content]
  39. 3 points
    Cześć, Udostępniam Wam gotową maszynę stworzoną w oparciu o ten poradnik, maszyna po uruchomieniu jest gotowa do pracy. Znajdziecie na niej czyste pliki Terenza i czyste source, skonfigurowane pod FreeBSD 12.1. Dane logowania Login mysql: root / Port: 3306 Login ssh/ftp: root / Port: 22 Hasło: password Komendy /c - menu kompilacji source /clear - czyszczenie logów /pack - prosty backup plików serwerowych /qc - rekompilacja questów /setup - generowanie symlinków i configów /start - uruchamiamy serwer /stop - zatrzymujemy serwer Source znajduje się w /usr/src/ Pliki serwerowe znajdują się w /usr/home/ Stronę można wrzucić do /usr/local/www/apache24/data/ (nie usuwaj phpmyadmin!) Bazą możemy zarządzać z poziomu serwera www - link: IP/phpmyadmin Informacje o maszynie Jako, że to zrzut maszyny możemy ją zaimportować w Virtualbox lub VMware - otwórz ją którymś z tych programów, cała reszta i konfiguracja tego pod hamachi taka jak wszędzie. Zamiast sysinstall wpisujemy bsdconfig. aalib-1.4.r5_13 ASCII art library apache24-2.4.43 Version 2.4.x of Apache web server apr-1.7.0.1.6.1_1 Apache Portability Library binutils-2.33.1_2,1 GNU binary tools boost-all-1.72.0 The "meta-port" for boost libraries boost-docs-1.72.0 Documentation for libraries from boost.org boost-jam-1.72.0 Build tool from the boost.org boost-libs-1.72.0 Free portable C++ libraries (without Boost.Python) ca_root_nss-3.52 Root certificate bundle from the Mozilla Project cryptopp-8.2.0 Free C++ class library of Cryptographic Primitives curl-7.69.1 Command line tool and library for transferring data with URLs db5-5.3.28_7 Oracle Berkeley DB, revision 5.3 devil-1.7.8_25,1 Full featured cross-platform image library expat-2.2.8 XML 1.0 parser written in C fontconfig-2.13.92_1,1 XML-based font configuration API for X Windows freeglut-3.0.0_2 open source implementation of the GLUT library freetype2-2.10.1 Free and portable TrueType font rendering engine gcc-9_4 Meta-port for the default version of the GNU Compiler Collection gcc9-9.3.0 GNU Compiler Collection 9 gdb-8.3.1 GNU GDB of newer version than comes with the system gdbm-1.18.1_1 GNU database manager gettext-runtime-0.20.1 GNU gettext runtime libraries and programs giflib-5.2.1 Tools and library routines for working with GIF images gmake-4.2.1_3 GNU version of 'make' utility gmp-6.1.2_1 Free library for arbitrary precision arithmetic icu-65.1,1 International Components for Unicode (from IBM) ilmbase-2.3.0_4 ILM Base libraries a.k.a. Half, IlmThread, Imath, and Iex indexinfo-0.3.1 Utility to regenerate the GNU info page index jasper-2.0.16_1 Implementation of the codec specified in the JPEG-2000 standard jbigkit-2.1_1 Lossless compression for bi-level images such as scanned pages, faxes jpeg-turbo-2.0.3 SIMD-accelerated JPEG codec which replaces libjpeg lcms-1.19_6,1 Light Color Management System -- a color management library libGLU-9.0.1 OpenGL utility library libICE-1.0.10,1 Inter Client Exchange library for X11 libSM-1.2.3,1 Session Management library for X11 libX11-1.6.9,1 X11 library libXau-1.0.9 Authentication Protocol library for X11 libXdamage-1.1.5 X Damage extension library libXdmcp-1.1.3 X Display Manager Control Protocol library libXext-1.3.4,1 X11 Extension library libXfixes-5.0.3_2 X Fixes extension library libXi-1.7.10,1 X Input extension library libXmu-1.1.3,1 X Miscellaneous Utilities libraries libXpm-3.5.13 X Pixmap library libXrandr-1.5.2 X Resize and Rotate extension library libXrender-0.9.10_2 X Render extension library libXt-1.2.0,1 X Toolkit library libXxf86vm-1.1.4_3 X Vidmode Extension libargon2-20190702 Memory hard password hashing program and library libdrm-2.4.99,1 Userspace interface to kernel Direct Rendering Module services libedit-3.1.20191211,1 Command line editor library libepoll-shim-0.0.20190311 epoll shim implemented using kevent libevent-2.1.11 API for executing callback functions on events or timeouts libffi-3.2.1_3 Foreign Function Interface libgd-2.2.5_2,1 Graphics library for fast creation of images libiconv-1.14_11 Character set conversion library liblz4-1.9.2,1 LZ4 compression library, lossless and very fast libmng-1.0.10_3 Multiple-image Network Graphics (MNG) reference library libnghttp2-1.40.0 HTTP/2.0 C Library libpciaccess-0.16 Generic PCI access library libpthread-stubs-0.4 This library provides weak aliases for pthread functions libunwind-20170615 Generic stack unwinding library libxcb-1.13.1 The X protocol C-language Binding (XCB) library libxml2-2.9.10 XML parser library for GNOME libxshmfence-1.3 Shared memory 'SyncFence' synchronization primitive libzip-1.5.2 C library for reading, creating, and modifying ZIP archives llvm-devel-11.0.d20200117 LLVM and Clang lua52-5.2.4 Small, compilable scripting language providing easy access to C code makedepend-1.0.6,1 Dependency generator for makefiles mesa-libs-18.3.2_3 OpenGL libraries that support GLX and EGL clients mod_php72-7.2.30 PHP Scripting Language mpc-1.1.0_2 Library of complex numbers with arbitrarily high precision mpfr-4.0.2 Library for multiple-precision floating-point computations mysql56-client-5.6.47_1 Multithreaded SQL database (client) mysql56-server-5.6.47_1 Multithreaded SQL database (server) nvidia-texture-tools-2.0.8.1_13 Texture Tools with support for DirectX 10 texture formats oniguruma-6.9.4 Regular expressions library compatible with POSIX/GNU/Perl openexr-2.3.0_3 High dynamic-range (HDR) image file format pciids-20191223 Database of all known IDs used in PCI devices pcre-8.43_2 Perl Compatible Regular Expressions library perl5-5.30.1 Practical Extraction and Report Language php72-7.2.30 PHP Scripting Language php72-bz2-7.2.30 The bz2 shared extension for php php72-ctype-7.2.30 The ctype shared extension for php php72-curl-7.2.30 The curl shared extension for php php72-dom-7.2.30 The dom shared extension for php php72-fileinfo-7.2.30 The fileinfo shared extension for php php72-filter-7.2.30 The filter shared extension for php php72-gd-7.2.30 The gd shared extension for php php72-hash-7.2.30 The hash shared extension for php php72-json-7.2.30 The json shared extension for php php72-mbstring-7.2.30 The mbstring shared extension for php php72-mysqli-7.2.30 The mysqli shared extension for php php72-openssl-7.2.30 The openssl shared extension for php php72-pdo-7.2.30 The pdo shared extension for php php72-phar-7.2.30 The phar shared extension for php php72-readline-7.2.30 The readline shared extension for php php72-session-7.2.30 The session shared extension for php php72-sockets-7.2.30 The sockets shared extension for php php72-xml-7.2.30 The xml shared extension for php php72-xmlreader-7.2.30 The xmlreader shared extension for php php72-xmlwriter-7.2.30 The xmlwriter shared extension for php php72-zip-7.2.30 The zip shared extension for php php72-zlib-7.2.30 The zlib shared extension for php pkg-1.13.2 Package manager png-1.6.37 Library for manipulating PNG images python-3.7_3,2 "meta-port" for the default version of Python interpreter python27-2.7.17_1 Interpreted object-oriented programming language python3-3_3 The "meta-port" for version 3 of the Python interpreter python37-3.7.6 Interpreted object-oriented programming language readline-8.0.1 Library for editing command lines as they are typed sdl-1.2.15_14,2 Cross-platform multimedia development API source-highlight-3.1.9_1 C/C++ and Java sources to HTML converter tiff-4.1.0 Tools and library routines for working with TIFF images wayland-1.16.0_1 Wayland composite "server" webp-1.1.0 Google WebP image format conversion tool xorgproto-2019.2 xorg protocol headers (do kompilacji source używany jest clang) Pobieralnia - Maszyna z plikami i source - <klik> - Source clienta (Visual Studio 2013) - source_client.7z - Source clienta by @itamm (Visual Studio 2019) - source_client.7z - Client - <klik>
  40. 3 points
    Wraz z przebudową naszej pobieralni, niektóre wstawki przechodzą do działu. Imhlord Weapons imhlord_weaponset_bydzekon.7z Inheritance Weapons inheritance_weaponset_bydzekon.7z Love Spirit Weapons lovespirit_weaponset_bydzekon.7z Justice Weapons justice_weaponset_bydzekon.7z Savage Weapons savage_weaponset_bydzekon.7z Ice Griffin Weapons ice_griffin_weapon_set.7z Fire Warrior Weapons fire_warrior_weapon_set.7z Revenge Weapons revenge_weapon_set.7z Demonic Weapons demonic_weapon_set.7z Royal Weapons royal_weapon_set.7z Dragon Weapons dragon_weapon_set.7z Dragon Nail Weapons dragon_nail_weapon_set.7z scorpion_weapon_set.7z
  41. 3 points
    Gui, dawno raz użyte. Może ktoś będzie chciał to sobie zakoduje i również użyje, leży sobie na dysku i się marnuję, a wydaje mi się, że jest całkiem ładne :c Miłego dzionka Podgląd: [Hidden Content] Skan: [Hidden Content] gui.psd
  42. 3 points
    Cześć! Udostępniam wam pliki serwerowe - Od razu mówię nie stawiać na tym publicznego serwera lecz możecie wyjąć jakieś zbroje, bronie itd. no ogólnie co tam było kiedyś dostępne na serwerze Pozdrawiam. Jest mysql oraz ftp więc można bez problemu sobie postawić serwer/wejść i sprawdzić. Download: [Hidden Content] Virustotal ma problem z limitem do 660mb ale podsyłam skan z URL od mega.nz [Hidden Content]
  43. 3 points
    VirtualBox: [Pobierz] Hamachi: [Pobierz] Hamachi dla użytkowników Windowsa XP/VISTA/7/8/8.1 polecam instalować [Pobierz] Maszyna: [Pobierz] Client: [Pobierz] Login do Maszyny: root Hasło do Maszyny: 123456 Login do Konta: terenzo Hasło do Konta: 123456 Komendy użyte w filmie: sysinstall /etc/rc.d/netif restart Komenda do wystartowania serwera: /start Komenda do zatrzymania serwera: /stop Komenda do restartu całej maszyny: reboot Launcher: [Pobierz] PortMap: [Pobierz] Aby wszystko przeszło pomyślnie upewnij się że: Zapora Systemu Windows została wyłączona na każdym komputerze Że mamy uruchomionego portmapa Uruchamiamy launcher z prawami admina Nasz znajomy musi mieć normalne IP z hamachi bez .100
  44. 3 points
    Innymisłowy podświetlanie nowo zdobytych przedmiotów w ekwipunku. Znane błędy: Aktualnie brak Aktualizacje: Pierwsze Wydanie - v0.1 Slot Effect System.rar
  45. 3 points
    Cześć Zbroje i bronie exportowane przez złodzieja BombWork'a Pobierz: [Hidden Content] Hasło do paczki: [email protected]{,;p6fLV Skan: [Hidden Content]
  46. 3 points
  47. 3 points
    1. Otwórz char_item.cpp i znajdź: if (inv_item->GetSocket(0) == item->GetSocket(0) && inv_item->GetSocket(1) == item->GetSocket(1) && inv_item->GetSocket(2) == item->GetSocket(2) && inv_item->GetCount() < ITEM_MAX_COUNT) 2. Zamień na: if (inv_item->GetSocket(0) == item->GetSocket(0) && inv_item->GetSocket(1) == item->GetSocket(1) && inv_item->GetSocket(2) == item->GetSocket(2) && inv_item->GetCount() + item->GetCount() <= ITEM_MAX_COUNT)
  48. 3 points
    Witam. Nie będę Was tutaj uczył podstaw programowania w C++, ale pokażę Wam dość ciekawy kurs stworzony przez Pana Mirosława Zelent. Uważam, że jest to najlepszy dostępny bezpłatnie kurs programowania w języku C++. Co Wam da owy kurs? Dla osób zaczynających zabawę z src na pewno pokaże jak poprawnie dodawać systemy i naprawiać ew. małe błędy. A oto link do kursu: klik.
  49. 3 points
    Przedstawię Wam w jaki sposób poprawić wyświetlanie przedmiotów w oknie quest'owym funkcją say_item, itd. Otwieramy plik questlib.lua, który znajdziemy tam gdzie mamy quest'y na serwerze. A następnie edytujemy całą poniższą funkcję: function say_item(name, vnum, desc) {...} end Na następującą: function say_item(name, vnum, desc) say("[INSERT_IMAGE image_type;item|idx;"..vnum.."|title;"..name.."|desc;"..desc.."|index;".. 0 .."|total;".. 1 .."]") end No i na koniec wystarczy zresetować serwer.
  50. 3 points
    EterLib/TextBar.cpp znajdz: void CTextBar::TextOut(int ix, int iy, const char * c_szText) { ... } zamien cala funkcje na: #include <regex> void CTextBar::TextOut(int ix, int iy, const char * c_szText) { const auto x = std::regex_replace(c_szText, std::regex("\\|c[a-zA-Z0-9]+|\\|[r|R|H|h]"), ""); c_szText = x.c_str(); if (m_isBold) { SIZE size { 0,0 }; GetTextExtent(c_szText, &size); ix = (500 - size.cx) / 2; } m_dib.TextOut(ix, iy, c_szText); Invalidate(); }
This leaderboard is set to Warsaw/GMT+02:00
×
×
  • Create New...