Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 07/23/19 in all areas

  1. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) Idea is from 2014 but I think this is good feature like discord. For open gui your name must start with "[" like [GM].
    1 point
  2. Hey, Here is my script for generating property for Trees, Buildings, Effects and Dungeon Blocks to make work more efficent. - crc32 as ObjectID (same as in WE) - skip LOD file (.gr2) - adjustable shadow output (Buildings) - auto .mdatr attachment (Collisions for *.gr2) Script: Video: How to use: 1. Install the newest python 2.7.x 2. Paste script into text editor and save with .py extension 3. Put that script in directory with objects 4. Right click on script -> open as -> python.exe
    1 point
  3. Hello, Have a bug in much published channel switcher due from DirectConnect function here is unbugged switcher [Hidden Content] *Move: uichangechannel and ui_wrapper in root pack *networkmodule.py Search: self.isAutoLogin=0 Add it under: self.channel = 0 *locale/xx/ui/systemdialog.py Search: { "name" : "game_option_button", "type" : "button", "x" : 10, "y" : 117, "text" : uiScriptLocale.GAMEOPTION_TITLE, "default_image" : ROOT + "XLarge_Button_01.sub", "over_image" : ROOT + "XLarge_Button_02.sub", "down_image" : ROOT + "XLarge_Button_03.sub", }, Add it under: { "name" : "change_ch_button", "type" : "button", "x" : 10, "y" : 147, "text" : "CH Switcher", "default_image" : ROOT + "XLarge_Button_01.sub", "over_image" : ROOT + "XLarge_Button_02.sub", "down_image" : ROOT + "XLarge_Button_03.sub", "disable_image" : ROOT + "XLarge_Button_03.sub", }, *game.py Search: self.interface.ShowDefaultWindows() Add it under: self.stream.isAutoSelect = 0 Search: self.interface = interfaceModule.Interface() Add it under: self.interface.SetStream(self.stream) *intrologin.py Search: if constInfo.SEQUENCE_PACKET_ENABLE: net.SetPacketSequenceMode() Add it upper: net.ACC_ID = id net.ACC_PWD = pwd *interfacemodule.py Search: def __del__(self): systemSetting.DestroyInterfaceHandler() event.SetInterfaceWindow(None) Add it under: def SetStream(self, stream): self.stream = stream Search: self.dlgSystem = uiSystem.SystemDialog() Change: self.dlgSystem = uiSystem.SystemDialog(self.stream) *uisystem.py Add in imports import uiChangeChannel Search: def __init__(self): Change: def __init__(self, stream): Search: def __init__(self, stream): Find: self.__Initialize() Add it under: self.stream = stream Search: self.GetChild("system_option_button").SAFE_SetEvent(self.__ClickSystemOptionButton) Add it upper: self.GetChild("change_ch_button").SAFE_SetEvent(self.__ClickChangeChannelButton) Search: def __OnClosePopupDialog(self): Add it upper: def __ClickChangeChannelButton(self): self.Close() if not self.changeChDlg: self.changeChDlg = uiChangeChannel.uiChangeChannel(self.stream) self.changeChDlg.Show() Search: self.gameOptionDlg = None Add it under: self.changeChDlg = None Search: if self.systemOptionDlg: self.systemOptionDlg.Destroy() Add it under: if self.changeChDlg: self.changeChDlg.Destroy() [Hidden Content]
    1 point
  4. M2 Download Center Download Here ( Internal ) Some time ago I was asked to make a logo (made free, with a small amount of time, the idea simple), but it did not make it to the tastes and it has not been used. I put them here, maybe someone will have an idea for it. Greetings
    1 point
  5. Probably in one .cpp file is that string encoding problem. Search the file and replace the string with a kr one and should work.
    1 point
  6. 1 point
  7. Hello guys, today im gonna show you a simple trick that lets you use what you have in your Srcs/server/constants.cpp What are those constants? They simply are the defined skills with they're index number. You ever asked yourself how to implement on items some bonuses like RESIST CLAW or RESIST ICE or DEFENCE POINTS and stuff like that? Well in constants.cpp you will face what are the bonus you got in your source (this is not how to implement new bonus, you will use the existent one) The part we are interested in is: const TApplyInfo aApplyInfo[MAX_APPLY_NUM] = And below you got all the things you need like // Point Type { POINT_NONE, }, // APPLY_NONE, INDEX=0 { POINT_MAX_HP, }, // APPLY_MAX_HP, INDEX=1 { POINT_MAX_SP, }, // APPLY_MAX_SP, INDEX=2 { POINT_HT, }, // APPLY_CON, INDEX=3 { POINT_IQ, }, // APPLY_INT, INDEX=4 So what does this mean? You just have to see this strings like this { POINT_MAX_HP, }, // APPLY_MAX_HP, 1 ITS EQUAL TO MAX_HP BONUS INDEX 1 What is this "INDEX" ? Well index is just a counter for your list of bonus, so you will start from 0 and get to xx Why dont i have the INDEX in my source? Well i just added them to make you understand what is in a simple way. So to be short you got your bonus identified with POINT_* Of course if it says MAX_HP that should be it right? Right! Now, lets say we have the CLAW RESISTANCE implemented in our source but when we change bonus on armors it doesnt appears even if we have insert it in the item_attr This is because you have to follow the INDEX ! So lets get back to business, implementing the resist claw on armors n stuff in the source, you will have something like this: { POINT_RESIST_CLAW, }, // APPLY_RESIST_CLAW, INDEX=96 or { POINT_RESIST_CLAW, }, // APPLY_RESIST_CLAW, 96 CLAW¿¡°Ô ÀúÇ× Wich are equal, or you can just count from the MAX_HP wich is 1 to RESIST_CLAW line wich will be X so if we have { POINT_RESIST_SHIT, }, // This will be index 0 { POINT_MAX_HP, }, // This will be index 1 { POINT_RESIST_WTF, }, // This will be index 2 { POINT_RESIST_ZOZO, }, // This will be index 3 { POINT_RESIST_XXX, }, // This will be index 4 { POINT_RESIST_CLAW, }, // This will be index 5 In default i think its 96 the resist_claw but you should check your source. ------------------------------------------------------------------------------------------------------------------------------------------------------------- Now we got our bonus index, how do we set that on item_attr? Simply, we go to navicat (or whatever) Right Click on "item_attr" Select "Design Table" You will have something like this Now go on the ... button near "Values:" You will have this: What do i do now? Its simple but you have to read carefully what im typing. This list respects a rule, this rule is the INDEX. As you can see it starts from MAX_HP that have an index equal to 1. If you want to add the bonus resist claw that in our case is 96 you have to reach this INDEX. How do i do that? Simple, you will have a " + " to add VALUES. Count how many values you have there, if you have 80 values then your index is until 80, you have to add other 16 values there to reach the "96". So to make it short again, count how many values you have and add how many you need to reach your desired index bonus. Like this: I called them with numbers because i prefer them like that but you can name them as you want, if you want to rename 96 with "RESIST_CLAW" is the same. Now you have to add this bonus in your item_attr. Like this: Where prob = probability to get this bonus on your item lv1 to lv5 are the variables for this bonus, with weapon,body,wrist,foots,neck,head,shield,ear you select the % of successfully obtain that bonus on the select part of equipment. I think thats all, changing your bonus ingame will show you the results. And if you have any translation problem n stuff, you have to edit your locale_game.txt in your locale folder. Thanks, if you want to share please keep credits. Sorry if this kind of guide does exists, i dont want to make something that has been already made with proper instructions, if so delete this. If you have any questions feel free to ask
    1 point
  8. Since things changed and I do not wish to get into legal trouble I decided not to continue this project. I don't mind anyone reuploading or sharing the RC build. That's up to you guys, you'd know what you're doing. Thanks to those who helped me and sorry for those I may have disappointed.
    0 points
×
×
  • Create New...

Important Information

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