Completely satisfied. Eye for detail, quick and clean, nice and friendly, will definitely come back for more maps. 10/10
Beiträge von zePhyr
-
-
< ==== Info ==== >
These files are coming on FreeBSD 13.1, clang, c++20, ccache. 75% of the dead codes and commented stuff have been deleted completely.
Client has been cleaned from duplicated items, mobs, commented codes, unused codes, etc.
Mob chat, OX Quiz and locale_string are now loaded from client - locale/[lang] where the queste are still loaded from [lang]/translate.lua.
Soon this will be changed moving quest translation in client.
This is how one of the locale looks like:
Bitte melden Sie sich an, um dieses Bild zu sehen.
< ==== Photos ==== >
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
< ==== Controls.h (Binary) ==== >
Code- #define LSS_SECURITY_KEY "1234abcd5678efgh"
- #define CLIENT_VERSION "ext_260823"
- #define APP_TITLE "M2Project - Global Action | [ver 1.2 rev ext_260823]" // APP_TITLE loaded from binary;
- #define DEFAULT_DEFINE_YMIR // Default define from Ymir;
- #define NIRVANA_VERSION1_DEFAULT // Nirvana version 1.0 revision def_151222 - 15/12/2021;
- #define NIRVANA_VERSION1_1_EXTENDED // Nirvana version 1.1 revision ext_020123 - 02/01/2023;
- #define NIRVANA_VERSION1_2_EXTENDED // Nirvana version 1.2 revision ext_260823 - 26/08/2023;
- #ifdef DEFAULT_DEFINE_YMIR
- #define LOCALE_SERVICE_EUROPE // Moved on service europe;
- #define ENABLE_ENERGY_SYSTEM // Official energy system;
- #define ENABLE_COSTUME_SYSTEM // Official costume system;
- #define ENABLE_DRAGON_SOUL_SYSTEM // Official dragon soul system;
- #define ENABLE_NEW_EQUIPMENT_SYSTEM // Official equipment system.
- #endif
- #ifdef NIRVANA_VERSION1_DEFAULT
- #define ENABLE_FOG_FIX // Fix for fog from official 16.2;
- #define ENABLE_ENB_MODE // Enable ENB Mode (HD);
- #define ENABLE_ANTI_EXP // Enable anti exp;
- #define ENABLE_MOB_SCALE // Enable mob scale;
- #define ENABLE_LEVEL_INT // Level moved from byte to int (max level 300+);
- #define ENABLE_GOLD_LIMIT // Gold limit moved to 20kkk;
- #define ENABLE_MDE_EFFECT // MDE Effect for epic weapons;
- #define ENABLE_PET_SYSTEM // Enable pet system;
- #define ENABLE_DISCORD_RPC // Enable discord rpc;
- #define ENABLE_AUTO_REFINE // Enable tickbox for auto refine;
- #define ENABLE_DICE_SYSTEM // Enable dice system: if the mob is king or boss and you're in party, the dropped item is randomly rolled;
- #define ENABLE_BLINK_ALERT // Enable blink alert in taskbar when message received;
- #define ENABLE_STACK_LIMIT // Item stack limit moved to 2000;
- #define ENABLE_RENEWAL_CUBE // Enable renewal cube system;
- #define ENABLE_FIX_MOBS_LAG // Enable fix for mobs lag;
- #define ENABLE_MAP_TELEPORT // Staff members can click on minimap and teleport;
- #define ENABLE_MOUNT_SYSTEM // Enable mount system;
- #define ENABLE_OBJ_SCALLING // Enable in game scalling;
- #define ENABLE_FOXFS_ENCRYPT // Enable fox fs encryption;
- #define ENABLE_SHOW_MOB_INFO // Enable mob level and agressive info;
- #define ENABLE_RENEWAL_QUEST // New quest page same as official servers;
- #define ENABLE_CONFIG_MODULE // Enable configuration module for saving settings;
- #define ENABLE_HAIR_SPECULAR // Enable specular on hair;
- #define ENABLE_BIOLOG_SYSTEM // Enable biolog system;
- #define ENABLE_MOB_DROP_INFO // Enable window with mobs,stones drops;
- #define ENABLE_CHANGE_CHANNEL // Enable option to change channels;
- #define ENABLE_MOUNT_PET_SKIN // Enable skin for mount and pet;
- #define ENABLE_PENDANT_SYSTEM // Enable pendand system from official;
- #define ENABLE_ATTBONUS_METIN // Enable attbonus metin;
- #define ENABLE_TEXTLINE_EMOJI // Emoji in textline/tooltip;
- #define ENABLE_MESSENGER_TEAM // Enable team list in messenger;
- #define ENABLE_DESTROY_DIALOG // Enable option to destroy items when you drop them;
- #define ENABLE_SORT_INVENTORY // Items from inventory and special inventory can be sorted;
- #define ENABLE_GRAPHIC_ON_OFF // Enable system graphic options;
- #define ENABLE_PARTY_POSITION // Party members can be seen on map;
- #define ENABLE_RENEWAL_SHOPEX // Renewal shopex with more pages;
- #define ENABLE_INSTANT_PICKUP // Enable instant pickup for items from the ground;
- #define ENABLE_VIEW_CHEST_DROP // Players can see what is inside the chest;
- #define ENABLE_ATLAS_MARK_INFO // Enable atlas mark info from client;
- #define ENABLE_QUICK_SELL_ITEM // Enable quick sell for items in shop;
- #define ENABLE_MESSENGER_BLOCK // Enable block players;
- #define ENABLE_COINS_INVENTORY // New currency added in inventory;
- #define ENABLE_EXTENDED_SAFEBOX // Enable 6 safebox pages instead of 3;
- #define ENABLE_RENEWAL_SWITCHBOT // Enable switchbot system;
- #define ENABLE_RENEWAL_BOOK_NAME // Players can see the name of the book when is dropped from mobs,stones;
- #define ENABLE_GUILD_RANK_SYSTEM // Enable board for guild rank;
- #define ENABLE_LOAD_INDEX_BINARY // Index is loaded from binary;
- #define ENABLE_CLIENT_PERFORMANCE // Enable client performance and new playersettingmodule;
- #define ENABLE_ETERPACK_OBSCURING // Enable EterPack key obscuring (hide heys from binary);
- #define ENABLE_RENEWAL_DEAD_PACKET // Restart here & restart in town with timer;
- #define ENABLE_RENEWAL_BONUS_BOARD // New bonus board almost the same as official;
- #define ENABLE_RENEWAL_SERVER_LIST // Enable renewal server list
- #define ENABLE_HIDE_COSTUME_SYSTEM // Enable hide for costume system;
- #define ENABLE_ACCE_COSTUME_SYSTEM // Enable acce costume system;
- #define ENABLE_RENEWAL_MINIMAP_MARK // New mark for npc/mobs/stones on minimap;
- #define ENABLE_TELEPORT_TO_A_FRIEND // Enable teleport to a friend;
- #define ENABLE_METIN_STONES_MINIMAP // Enable metin stones on minimap;
- #define ENABLE_MULTI_LANGUAGE_SYSTEM // Multi language system;
- #define ENABLE_WEAPON_COSTUME_SYSTEM // Enable weapon costume system;
- #define ENABLE_VIEW_TARGET_PLAYER_HP // Enable HP on target bar;
- #define ENABLE_VIEW_TARGET_DECIMAL_HP // Enable HP in decimals;
- #define ENABLE_RENEWAL_CLIENT_VERSION // Enable new client version check;
- #define ENABLE_CANSEEHIDDENTHING_FOR_GM // Enable GM to see invisible characters (both normal semi-transparent and gm invisibility);
- #define ENABLE_EXTENDED_WHISPER_DETAILS // Extended whisper target inforamtion multi language country flag;
- #define ENABLE_ENVIRONMENT_EFFECT_OPTION // Enable environment options;
- #define ENABLE_EXTEND_TIME_COSTUME_SYSTEM // Enable extend time for costume system.
- #endif
- #ifdef NIRVANA_VERSION1_1_EXTENDED
- #define ENABLE_FOV_OPTION // Enable field of view customizaion;
- #define ENABLE_TITLE_SYSTEM // Enable title system on item;
- #define ENABLE_RENDER_TARGET // Enable render target system;
- #define ENABLE_ATTBONUS_BOSS // Enable attbonus boss;
- #define ENABLE_EVENT_MANAGER // Enable event manager (auto events);
- #define ENABLE_MULTI_TEXTLINE // Enable multi textline;
- #define ENABLE_RENEWAL_AFFECT // Enable renewal affect (1 new subtype + affect icon);
- #define ENABLE_OFFLINE_MESSAGE // Enable option to leave a offline message if player not connected;
- #define ENABLE_RESTART_INSTANT // Enable restart instant for 500.000 Yang;
- #define ENABLE_NEW_DUNGEON_LIB // Enable new dungeon functions;
- #define ENABLE_RENEWAL_OX_EVENT // Enable renewal ox event like official;
- #define ENABLE_MULTI_FARM_BLOCK // Enable muli farm impossible for more than 2 clients;
- #define ENABLE_SPECIAL_INVENTORY // Special inventory for books, upgrade, etc;
- #define ENABLE_STONE_SCALE_OPTION // Enable customization for metin stones;
- #define ENABLE_MAINTENANCE_SYSTEM // Enable maintenance information in game;
- #define ENABLE_SKILL_COLOR_SYSTEM // Enable skill color system;
- #define ENABLE_INGAME_WIKI_SYSTEM // Enable wiki system in game;
- #define ENABLE_PICKUP_ITEM_EFFECT // Enable effect for picked items in inventory / special inventory;
- #define ENABLE_RENEWAL_OFFLINESHOP // Enable new offlineshop system;
- #define ENABLE_RENEWAL_BATTLE_PASS // Enable renewal battle pass system;
- #define ENABLE_RENEWAL_TEAM_AFFECT // Enable renewal team affect (logo);
- #define ENABLE_RENEWAL_TEXT_SHADOW // Enable option for name text shadow;
- #define ENABLE_SLOT_MARKING_SYSTEM // Enable slot marking system like official;
- #define ENABLE_RENEWAL_SKILL_SELECT // Enable a new window to select skills;
- #define ENABLE_BONUS_COSTUME_SYSTEM // Enable bonus add and change on costumes;
- #define ENABLE_ITEM_PLUS_LEVEL_ICON // Enable item plus level icon;
- #define ENABLE_RENEWAL_SPECIAL_CHAT // Enable renewal special chat for Yang, Iems, etc;
- #define ENABLE_LARGE_DYNAMIC_PACKET // Enable large dynamic packet size;
- #define ENABLE_CLIENT_LOCALE_STRING // Enable locale string loading from client;
- #define ENABLE_GUILD_LEADER_TEXTAIL // Enable text for guild leaders with [Leader];
- #define ENABLE_BOSS_EFFECT_OVER_HEAD // Enable boss effect over head;
- #define ENABLE_MONSTER_TARGET_ELEMENT // Enable target element for each monster;
- #define ENABLE_RENEWAL_PREMIUM_SYSTEM // Enable premium system (player);
- #define ENABLE_RENEWAL_INGAME_ITEMSHOP // Enable brand new item shop in game;
- #define ENABLE_AUTOMATIC_PICK_UP_SYSTEM // Enable automatic pick up system;
- #define ENABLE_OFFLINESHOP_SEARCH_SYSTEM // Enable search system for renewal offlineshop;
- #define ENABLE_MINIGAME_OKEY_CARDS_SYSTEM // Enable minigame okey cards system;
- #define ENABLE_PYTHON_DYNAMIC_MODULE_NAME // Enable python dynamic module name (extra layer of security for client).
- #endif
- #ifdef NIRVANA_VERSION1_2_EXTENDED
- #define ENABLE_FISH_GAME // Enable the new fishing game from official;
- #define ENABLE_RENEWAL_REGEN // Enable a new type of regen;
- #define ENABLE_EMOTICONS_SYSTEM // Emoji system in chat and whisper;
- #define ENABLE_GUILD_TOKEN_AUTH // Enable patch for guild by MartySama;
- #define ENABLE_GROWTH_PET_SYSTEM // Enable growth pet system from official;
- #define ENABLE_AURA_COSTUME_SYSTEM // Enable aura costume system;
- #define ENABLE_INTROSELECT_EFFECTS // Enable effect in introselect (used for Aura System);
- #define ENABLE_SHIP_DEFENCE_DUNGEON // Enable Dungeon Ship Defence from official;
- #define ENABLE_PYTHON_EVENT_FUNCTIONS // Enable python event functions like official;
- #define ENABLE_DUNGEON_TRACKING_SYSTEM // Enable the new dungeon info;
- #define ENABLE_RENEWAL_TELEPORT_SYSTEM // Enable new teleport system;
- #define ENABLE_INVENTORY_EXPANSION_SYSTEM // Enable inventory expansion system like official;
- #endif
< ==== Service.h (Server) ==== >
Code- #ifndef __INC_SERVICE_H__
- #define __INC_SERVICE_H__
- #define CLIENT_VERSION "ext_260823"
- #define NIRVANA_VERSION1_DEFAULT // Nirvana version 1.0 revision def_151222 - 15/12/2021;
- #define NIRVANA_VERSION1_1_EXTENDED // Nirvana version 1.1 revision ext_020123 - 02/01/2023;
- #define NIRVANA_VERSION1_2_EXTENDED // Nirvana version 1.2 revision ext_260823 - 26/08/2023;
- #ifdef NIRVANA_VERSION1_DEFAULT
- #define ENABLE_PROXY_IP
- #define ENABLE_ANTI_EXP // Enable anti exp;
- #define ENABLE_LEVEL_INT // Level moved from byte to int (max level 300+);
- #define ENABLE_UDP_BLOCK // Enable block udp port;
- #define ENABLE_GOLD_LIMIT // Gold limit moved to 20kkk;
- #define ENABLE_PET_SYSTEM // Enable pet system;
- #define ENABLE_DICE_SYSTEM // Enable dice system: if the mob is king or boss and you're in party, the dropped item is randomly rolled;
- #define ENABLE_GLOBAL_CHAT // Enable global chat with flag;
- #define ENABLE_STACK_LIMIT // Item stack limit moved to 2000;
- #define ENABLE_RENEWAL_CUBE // Enable renewal cube system;
- #define ENABLE_MOUNT_SYSTEM // Enable mount system;
- #define ENABLE_BIOLOG_SYSTEM // Enable biolog system;
- #define ENABLE_MOB_DROP_INFO // Enable window with mobs,stones drops;
- #define ENABLE_SHOW_MOB_INFO // Enable mob level and agressive info;
- #define ENABLE_PORT_SECURITY // Block db_port, p2p_port, and remote adminpage exploits;
- #define ENABLE_RENEWAL_QUEST // New quest page same as official servers;
- #define ENABLE_CHANGE_CHANNEL // Enable option to change channels;
- #define ENABLE_MOUNT_PET_SKIN // Enable skin for mount and pet;
- #define ENABLE_MESSENGER_TEAM // Enable team list in messenger;
- #define ENABLE_PENDANT_SYSTEM // Enable pendand system from official;
- #define ENABLE_ATTBONUS_METIN // Enable attbonus metin;
- #define ENABLE_DESTROY_DIALOG // Enable option to destroy items when you drop them;
- #define ENABLE_SORT_INVENTORY // Items from inventory and special inventory can be sorted;
- #define ENABLE_PARTY_POSITION // Party members can be seen on map;
- #define ENABLE_RENEWAL_SHOPEX // Renewal shopex with more pages;
- #define ENABLE_VIEW_CHEST_DROP // Players can see what is inside the chest;
- #define ENABLE_MESSENGER_BLOCK // Enable block players;
- #define ENABLE_COINS_INVENTORY // New currency added in inventory;
- #define ENABLE_QUICK_SELL_ITEM // Enable quick sell for items in shop;
- #define ENABLE_EXTENDED_SAFEBOX // Enable 6 safebox pages instead of 3;
- #define ENABLE_PARTY_BUFF_SYSTEM // Enable party buff system;
- #define ENABLE_RENEWAL_SWITCHBOT // Enable switchbot system;
- #define ENABLE_RENEWAL_BOOK_NAME // Players can see the name of the book when is dropped from mobs,stones;
- #define ENABLE_GUILD_RANK_SYSTEM // Enable board for guild rank;
- #define ENABLE_RENEWAL_DEAD_PACKET // Restart here & restart in town with timer;
- #define ENABLE_HIDE_COSTUME_SYSTEM // Enable hide for costume system;
- #define ENABLE_ACCE_COSTUME_SYSTEM // Enable acce costume system;
- #define ENABLE_TELEPORT_TO_A_FRIEND // Enable teleport to a friend;
- #define ENABLE_WEAPON_COSTUME_SYSTEM // Enable weapon costume system.
- #define ENABLE_MULTI_LANGUAGE_SYSTEM // Multi language system;
- #define ENABLE_VIEW_TARGET_PLAYER_HP // Enable HP on target bar;
- #define ENABLE_RENEWAL_CLIENT_VERSION // Enable new client version check;
- #define ENABLE_VIEW_TARGET_DECIMAL_HP // Enable HP in decimals.
- #define ENABLE_EXTENDED_WHISPER_DETAILS // Extended whisper target inforamtion multi language country flag;
- #define ENABLE_EXTEND_TIME_COSTUME_SYSTEM // Enable extend time for costume system;
- #define ENABLE_IMPROVED_HANDSHAKE_PROCESS // Enable improved handshake proccess by Owsap.
- #endif
- #ifdef NIRVANA_VERSION1_1_EXTENDED
- #define ENABLE_TITLE_SYSTEM // Enable title system on item;
- #define ENABLE_ATTBONUS_BOSS // Enable attbonus boss;
- #define ENABLE_EVENT_MANAGER // Enable event manager (auto events);
- #define ENABLE_RENEWAL_AFFECT // Enable renewal affect (1 new subtype + affect icon);
- #define ENABLE_OFFLINE_MESSAGE // Enable option to leave a offline message if player not connected;
- #define ENABLE_RESTART_INSTANT // Enable restart instant for 500.000 Yang;
- #define ENABLE_NEW_DUNGEON_LIB // Enable new dungeon functions;
- #define ENABLE_RENEWAL_OX_EVENT // Enable renewal ox event like official;
- #define ENABLE_MULTI_FARM_BLOCK // Enable muli farm impossible for more than 2 clients;
- #define ENABLE_SPECIAL_INVENTORY // Special inventory for books, upgrade, etc;
- #define ENABLE_EXTEND_ITEM_AWARD // Enable extended item award (used for ishop mostly);
- #define ENABLE_MAINTENANCE_SYSTEM // Enable maintenance information in game;
- #define ENABLE_SKILL_COLOR_SYSTEM // Enable skill color system;
- #define ENABLE_PICKUP_ITEM_EFFECT // Enable effect for picked items in inventory / special inventory;
- #define ENABLE_RENEWAL_BATTLE_PASS // Enable renewal battle pass system;
- #define ENABLE_RENEWAL_OFFLINESHOP // Enable new offlineshop system;
- #define ENABLE_RENEWAL_TEAM_AFFECT // Enable renewal team affect (logo);
- #define ENABLE_SLOT_MARKING_SYSTEM // Enable slot marking system like official;
- #define ENABLE_RENEWAL_SKILL_SELECT // Enable a new window to select skills;
- #define ENABLE_RENEWAL_SPECIAL_CHAT // Enable renewal special chat for Yang, Iems, etc;
- #define ENABLE_LARGE_DYNAMIC_PACKET // Enable large dynamic packet size;
- #define ENABLE_CLIENT_LOCALE_STRING // Enable locale string loading from client;
- #define ENABLE_BONUS_COSTUME_SYSTEM // Enable bonus add and change on costumes;
- #define ENABLE_GUILD_LEADER_TEXTAIL // Enable text for guild leaders with [Leader];
- #define ENABLE_RENEWAL_PREMIUM_SYSTEM // Enable premium system (player, account);
- #define ENABLE_CROSS_CHANNEL_REQUESTS // Enable cross channel requests (will extend in the future);
- #define ENABLE_DROP_LEVEL_LIMIT_RANGE // Enable level limit range for drop such as level_limit_start and level_limit_end on type limit;
- #define ENABLE_RENEWAL_INGAME_ITEMSHOP // Enable brand new item shop in game;
- #define ENABLE_AUTOMATIC_PICK_UP_SYSTEM // Enable automatic pick up system;
- #define ENABLE_OFFLINESHOP_SEARCH_SYSTEM // Enable search system for renewal offlineshop;
- #define ENABLE_MINIGAME_OKEY_CARDS_SYSTEM // Enable minigame okey cards system.
- #ifdef ENABLE_EXTEND_ITEM_AWARD
- #define USE_ITEM_AWARD_CHECK_ATTRIBUTES
- #endif
- #endif
- #ifdef NIRVANA_VERSION1_2_EXTENDED
- #define ENABLE_FISH_GAME // Enable the new fishing game from official;
- #define ENABLE_RENEWAL_REGEN // Enable a new type of regen;
- #define ENABLE_EMOTICONS_SYSTEM // Emoji system in chat and whisper;
- #define ENABLE_ANTI_EQUIP_FLOOD // Enable quick check for equip;
- #define ENABLE_GUILD_TOKEN_AUTH // Enable patch for guild by MartySama;
- #define ENABLE_HANDSHAKE_SESSION // Enable handshake session hotfix;
- #define ENABLE_GROWTH_PET_SYSTEM // Enable growth pet system from official;
- #define ENABLE_AURA_COSTUME_SYSTEM // Enable aura costume system;
- #define ENABLE_SHIP_DEFENCE_DUNGEON // Enable Dungeon Ship Defence from official;
- #define ENABLE_DUNGEON_TRACKING_SYSTEM // Enable the new dungeon info;
- #define ENABLE_RENEWAL_TELEPORT_SYSTEM // Enable new teleport system;
- #define ENABLE_INVENTORY_EXPANSION_SYSTEM // Enable inventory expansion system like official;
- #endif
- #endif
< ==== Price ==== >
Price will be discussed on Discord : twix007 (TWIX#5290)
When you'll buy the files you'll get following items (VDI included):
Bitte melden Sie sich an, um diesen Link zu sehen.
Aslan System drin.
Owsap System drin.
Dracarys System drin.
It's only Sonitex and dracaryS
-
That one posted on this community. I don't know which version it is.
-
You don't see in photo? Is fix for tooltip from bonus board official. Next time double check the post and than reply.
I don´t understand that? What is bug of tooltip in this system?
On that system posted on this community , tooltip is not working (that description for bonuses). With this fix you can make it like official.
-
You don't see in photo? Is fix for tooltip from bonus board official. Next time double check the post and than reply.
-
Bellow you'll see a small fix for tooltip from bonus board like official.
Go in root, open uicharacterdetails.py and look for:
Replace that with:
Now look for:
Code- if i+self.LabelLineCount < self.UI_MAX_COUNT:
- self.labelTextList[i+self.LabelLineCount].SetOverEvent( ui.__mem_func__(self.__ButtonOverIn), self.LabelLineCount + self.startline_endlinecount )
- self.labelTextList[i+self.LabelLineCount].SetOverOutEvent( ui.__mem_func__(self.__ButtonOverOut), self.LabelLineCount + self.startline_endlinecount )
Replace that with:
Code- if i+self.LabelLineCount < self.UI_MAX_COUNT:
- self.labelTextList[i+self.LabelLineCount].ShowToolTip = lambda arg=self.LabelLineCount + self.startline_endlinecount: self.__ButtonOverIn(arg)
- self.labelTextList[i+self.LabelLineCount].HideToolTip = lambda arg=self.LabelLineCount + self.startline_endlinecount: self.__ButtonOverOut(arg)
Now open uitooltip.py and look for def AutoAppendTextLine(self, text, color = FONT_COLOR, centerAlign = True):
After the entire definition add this:
Now go in ui.py and look for:
Bellow add (or replace if you already have this):
Code- elif Type == "thinboard_gold":
- parent.Children[Index] = ThinBoardGold()
- parent.Children[Index].SetParent(parent)
- self.LoadElementThinBoard(parent.Children[Index], ElementValue, parent)
- elif Type == "thinboard_circle":
- parent.Children[Index] = ThinBoardCircle()
- parent.Children[Index].SetParent(parent)
- self.LoadElementThinBoard(parent.Children[Index], ElementValue, parent)
Now look for class ThinBoard(Window): and after entire class add (or replace if you already have this):
Python- class ThinBoardGold(Window):
- CORNER_WIDTH = 16
- CORNER_HEIGHT = 16
- LINE_WIDTH = 16
- LINE_HEIGHT = 16
- LT = 0
- LB = 1
- RT = 2
- RB = 3
- L = 0
- R = 1
- T = 2
- B = 3
- def __init__(self, layer = "UI"):
- Window.__init__(self, layer)
- CornerFileNames = [ "d:/ymir work/ui/pattern/thinboardgold/ThinBoard_Corner_"+dir+"_Gold.tga" for dir in ["LeftTop","LeftBottom","RightTop","RightBottom"] ]
- LineFileNames = [ "d:/ymir work/ui/pattern/thinboardgold/ThinBoard_Line_"+dir+"_Gold.tga" for dir in ["Left","Right","Top","Bottom"] ]
- self.MakeBase()
- self.Corners = []
- for fileName in CornerFileNames:
- Corner = ExpandedImageBox()
- Corner.AddFlag("attach")
- Corner.AddFlag("not_pick")
- Corner.LoadImage(fileName)
- Corner.SetParent(self)
- Corner.SetPosition(0, 0)
- Corner.Show()
- self.Corners.append(Corner)
- self.Lines = []
- for fileName in LineFileNames:
- Line = ExpandedImageBox()
- Line.AddFlag("attach")
- Line.AddFlag("not_pick")
- Line.LoadImage(fileName)
- Line.SetParent(self)
- Line.SetPosition(0, 0)
- Line.Show()
- self.Lines.append(Line)
- self.Lines[self.L].SetPosition(0, self.CORNER_HEIGHT)
- self.Lines[self.T].SetPosition(self.CORNER_WIDTH, 0)
- def __del__(self):
- Window.__del__(self)
- def SetSize(self, width, height):
- width = max(self.CORNER_WIDTH*2, width)
- height = max(self.CORNER_HEIGHT*2, height)
- Window.SetSize(self, width, height)
- self.Corners[self.LB].SetPosition(0, height - self.CORNER_HEIGHT)
- self.Corners[self.RT].SetPosition(width - self.CORNER_WIDTH, 0)
- self.Corners[self.RB].SetPosition(width - self.CORNER_WIDTH, height - self.CORNER_HEIGHT)
- self.Lines[self.R].SetPosition(width - self.CORNER_WIDTH, self.CORNER_HEIGHT)
- self.Lines[self.B].SetPosition(self.CORNER_HEIGHT, height - self.CORNER_HEIGHT)
- verticalShowingPercentage = float((height - self.CORNER_HEIGHT*2) - self.LINE_HEIGHT) / self.LINE_HEIGHT
- horizontalShowingPercentage = float((width - self.CORNER_WIDTH*2) - self.LINE_WIDTH) / self.LINE_WIDTH
- self.Lines[self.L].SetRenderingRect(0, 0, 0, verticalShowingPercentage)
- self.Lines[self.R].SetRenderingRect(0, 0, 0, verticalShowingPercentage)
- self.Lines[self.T].SetRenderingRect(0, 0, horizontalShowingPercentage, 0)
- self.Lines[self.B].SetRenderingRect(0, 0, horizontalShowingPercentage, 0)
- #self.Base.GetWidth()
- #self.Base.GetHeight()
- """
- Defalt Width : 128, Height : 128
- 0.0 > 128, 1.0 > 256
- """
- if self.Base:
- self.Base.SetRenderingRect(0, 0, (float(width)-32)/float(self.Base.GetWidth()) - 1.0, (float(height)-32)/float(self.Base.GetHeight()) - 1.0)
- def MakeBase(self):
- self.Base = ExpandedImageBox()
- self.Base.AddFlag("not_pick")
- self.Base.LoadImage("d:/ymir work/ui/pattern/Board_Base.tga")
- self.Base.SetParent(self)
- self.Base.SetPosition(16, 16)
- self.Base.SetAlpha(0.8)
- self.Base.Show()
- def ShowInternal(self):
- self.Base.Show()
- for wnd in self.Lines:
- wnd.Show()
- for wnd in self.Corners:
- wnd.Show()
- def HideInternal(self):
- self.Base.Hide()
- for wnd in self.Lines:
- wnd.Hide()
- for wnd in self.Corners:
- wnd.Hide()
- class ThinBoardCircle(Window):
- CORNER_WIDTH = 4
- CORNER_HEIGHT = 4
- LINE_WIDTH = 4
- LINE_HEIGHT = 4
- BOARD_COLOR = grp.GenerateColor(0.0, 0.0, 0.0, 1.0)
- LT = 0
- LB = 1
- RT = 2
- RB = 3
- L = 0
- R = 1
- T = 2
- B = 3
- def __init__(self, layer = "UI"):
- Window.__init__(self, layer)
- CornerFileNames = [ "d:/ymir work/ui/pattern/thinboardcircle/ThinBoard_Corner_"+dir+"_Circle.tga" for dir in ["LeftTop","LeftBottom","RightTop","RightBottom"] ]
- LineFileNames = [ "d:/ymir work/ui/pattern/thinboardcircle/ThinBoard_Line_"+dir+"_Circle.tga" for dir in ["Left","Right","Top","Bottom"] ]
- self.Corners = []
- for fileName in CornerFileNames:
- Corner = ExpandedImageBox()
- Corner.AddFlag("attach")
- Corner.AddFlag("not_pick")
- Corner.LoadImage(fileName)
- Corner.SetParent(self)
- Corner.SetPosition(0, 0)
- Corner.Show()
- self.Corners.append(Corner)
- self.Lines = []
- for fileName in LineFileNames:
- Line = ExpandedImageBox()
- Line.AddFlag("attach")
- Line.AddFlag("not_pick")
- Line.LoadImage(fileName)
- Line.SetParent(self)
- Line.SetPosition(0, 0)
- Line.Show()
- self.Lines.append(Line)
- Base = Bar()
- Base.SetParent(self)
- Base.AddFlag("attach")
- Base.AddFlag("not_pick")
- Base.SetPosition(self.CORNER_WIDTH, self.CORNER_HEIGHT)
- Base.SetColor(self.BOARD_COLOR)
- Base.Show()
- self.Base = Base
- self.Lines[self.L].SetPosition(0, self.CORNER_HEIGHT)
- self.Lines[self.T].SetPosition(self.CORNER_WIDTH, 0)
- def __del__(self):
- Window.__del__(self)
- def SetSize(self, width, height):
- width = max(self.CORNER_WIDTH*2, width)
- height = max(self.CORNER_HEIGHT*2, height)
- Window.SetSize(self, width, height)
- self.Corners[self.LB].SetPosition(0, height - self.CORNER_HEIGHT)
- self.Corners[self.RT].SetPosition(width - self.CORNER_WIDTH, 0)
- self.Corners[self.RB].SetPosition(width - self.CORNER_WIDTH, height - self.CORNER_HEIGHT)
- self.Lines[self.R].SetPosition(width - self.CORNER_WIDTH, self.CORNER_HEIGHT)
- self.Lines[self.B].SetPosition(self.CORNER_HEIGHT, height - self.CORNER_HEIGHT)
- verticalShowingPercentage = float((height - self.CORNER_HEIGHT*2) - self.LINE_HEIGHT) / self.LINE_HEIGHT
- horizontalShowingPercentage = float((width - self.CORNER_WIDTH*2) - self.LINE_WIDTH) / self.LINE_WIDTH
- self.Lines[self.L].SetRenderingRect(0, 0, 0, verticalShowingPercentage)
- self.Lines[self.R].SetRenderingRect(0, 0, 0, verticalShowingPercentage)
- self.Lines[self.T].SetRenderingRect(0, 0, horizontalShowingPercentage, 0)
- self.Lines[self.B].SetRenderingRect(0, 0, horizontalShowingPercentage, 0)
- self.Base.SetSize(width - self.CORNER_WIDTH*2, height - self.CORNER_HEIGHT*2)
- def ShowInternal(self):
- self.Base.Show()
- for wnd in self.Lines:
- wnd.Show()
- for wnd in self.Corners:
- wnd.Show()
- def HideInternal(self):
- self.Base.Hide()
- for wnd in self.Lines:
- wnd.Hide()
- for wnd in self.Corners:
- wnd.Hide()
[!] Make sure you do the right TABS.
Bitte melden Sie sich an, um diesen Link zu sehen.
-
First of all, thank you for releasing.
However, I have inserted the tutorial and in my opinion there are some errors in the code for the purpose of this system.
eg:
- If you have a pet equipped and move another pet item back and forth in the inventory, you will spawn and despawn your dressed pet. Why?
In the tutorial there is also a point where it is not clear what the author meant
eg:
// 8.) Search:
BYTE bType = m_pProto-> aApplies [i] .bType;
// 9.) Add before:
#ifdef __PET_SYSTEM__
if (IsPetItem ())
continue;
#endif
I don't have this part.
OR
// 12.) Search:
if (this! = m_pOwner-> GetWear (GetCell () - INVENTORY_MAX_NUM))
// 13.) Add bellow:
#ifdef __PET_SYSTEM__
if (IsPetItem ())
m_pOwner-> PetUnsummon (this);
#endif
Should I now insert the query directly under the if, or under the entire if block? (Velvet body?)
PS: You also get double the bonuses of the pet item.
Instead of this:
// 8.) Search:
BYTE bType = m_pProto-> aApplies [i] .bType;
// 9.) Add before:
#ifdef __PET_SYSTEM__
if (IsPetItem ())
continue;
#endif
Do this:
//8.) Search:
if (m_pProto-> aApplies [i] == .bType APPLY_NONE)
//9.) Add after:
#ifdef __PET_SYSTEM__
if (IsPetItem ())
continue;
#endif
Instead of this:
// 12.) Search:
if (this! = m_pOwner-> GetWear (GetCell () - INVENTORY_MAX_NUM))
// 13.) Add bellow:
#ifdef __PET_SYSTEM__
if (IsPetItem ())
m_pOwner-> PetUnsummon (this);
#endif
Do this:
//12.) Search:
if (IsRideItem ())
ClearMountAttributeAndAffect ();
//13.) Add before:
#ifdef __PET_SYSTEM__
if (IsPetItem ())
m_pOwner-> PetUnsummon (this);
#endif
#####
Fix for PetSystem.cpp
Replace:
With:
Code- void CPetActor :: SetName ()
- {
- char buf [64];
- if (0! = m_pkOwner && 0! = m_pkOwner-> GetName ())
- snprintf (buf, sizeof (buf), "% s -% s", m_pkOwner-> GetName (), m_pkChar-> GetMobTable (). szLocaleName);
- else
- snprintf (buf, sizeof (buf), "% s", m_pkChar-> GetMobTable (). szLocaleName);
- if (true == IsSummoned ())
- m_pkChar-> SetName (buf);
- m_name = buf;
- }
-
Link down, reupload?
-
Hy, below you will see that "amazing" system for Pet. Actually is not a system but, Merry Christmas.
Bitte melden Sie sich an, um diesen Anhang zu sehen.
1st fix:
Open PetSystem.cpp and replace void CPetActor :: SetName () with:
Code- void CPetActor :: SetName ()
- {
- char buf [64];
- if (0! = m_pkOwner && 0! = m_pkOwner-> GetName ())
- snprintf (buf, sizeof (buf), "% s -% s", m_pkOwner-> GetName (), m_pkChar-> GetMobTable (). szLocaleName);
- else
- snprintf (buf, sizeof (buf), "% s", m_pkChar-> GetMobTable (). szLocaleName);
- if (true == IsSummoned ())
- m_pkChar-> SetName (buf);
- m_name = buf;
- }
-
Hy guys, I'm looking for someone who can create some maps for me. I will pay for all services, just recommend me some known names. Thanks.
-
#bump
-
Hello, I got a new bug for special storage, and I don't know how to fix it...Maybe some ideeas..?
Bitte melden Sie sich an, um diesen Link zu sehen.
-
That's great, thanks.
-