-
Posts
51 -
Joined
-
Last visited
-
Days Won
3 -
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Everything posted by Finnael
-
Thanks, pretty useful stuff.
-
Seems like you are trying to implement another system that uses RenderTarget. Better ask that question to the system owner.
-
Try replacing your AppendTextLine function with this: def AppendTextLine(self, text, color = FONT_COLOR, centerAlign = TRUE): textLine = ui.TextLine() textLine.SetParent(self) textLine.SetFontName(self.defFontName) textLine.SetPackedFontColor(color) textLine.SetText(text) textLine.SetOutline() textLine.SetFeather(FALSE) textLine.Show() if centerAlign: textLine.SetPosition(self.toolTipWidth/2, self.toolTipHeight) textLine.SetHorizontalAlignCenter() else: textLine.SetPosition(10, self.toolTipHeight) self.childrenList.append(textLine) self.toolTipHeight += self.TEXT_LINE_HEIGHT self.ResizeToolTip() return textLine
-
I think models and animations of metin looked really good when it first released back in 2004-2005. Even now it doesn't really look that bad compared to other mmorpgs that released at that time. I think this is a reason why people still play it to this day.
-
It is just Elon showing off.
-
[Help] death from mob makes no lose buff
Finnael replied to Cripplez's topic in Community Support - Questions & Answers
I haven't tested it but this might work. (Credits to: @cBaraN) void ClearAffect(bool bSave=false); // Find void ClearAffect(bool bSave = false, bool bSomeAffect = false); // chane void CHARACTER::ClearAffect(bool bSave) // find void CHARACTER::ClearAffect(bool bSave, bool bSomeAffect) // change // Find if (IsPC()) { SendAffectRemovePacket(GetDesc(), GetPlayerID(), pkAff->dwType, pkAff->bApplyOn); } // Add above if (bSomeAffect) { switch (pkAff->dwType) { case (SKILL_JEONGWI): case (SKILL_GEOMKYUNG): case (SKILL_CHUNKEON): case (SKILL_GWIGEOM): case (SKILL_TERROR): case (SKILL_JUMAGAP): case (SKILL_HOSIN): case (SKILL_REFLECT): case (SKILL_GICHEON): case (SKILL_KWAESOK): case (SKILL_JEUNGRYEOK): case (SKILL_JEOKRANG): case (SKILL_CHEONGRANG): { ++it; continue; } } } // Find void CHARACTER::Dead(LPCHARACTER pkKiller, bool bImmediateDead) // Find this in the function ClearAffect(true); // Change ClearAffect(true, (pkKiller && pkKiller->IsPC()) ? false : true); -
How to change socket0 value in noTXT?
Finnael replied to kaJaMrSimple's topic in Community Support - Questions & Answers
Yeah, if it is a custom column you add you need to change how that proto is read inside your source file. (db/ProtoReader.cpp) That is not a very easy thing to do. A simpler way might be to enable no txt so you can edit your item_proto table inside navicat. (I am not sure if this will work or not but might worth to try) -
How to change socket0 value in noTXT?
Finnael replied to kaJaMrSimple's topic in Community Support - Questions & Answers
Use an item_proto.txt that has socket0? -
Go to your uiscript/refinedialog.py. There is an element called "SuccessPercentage" here find it. This is the success percentage text. If you want it to have a color, simply add this line: "color" : "red" It should look something like this: { "name" : "SuccessPercentage", "type" : "text", "text" : uiScriptLocale.REFINE_INFO, "color" : "red", "horizontal_align" : "center", "vertical_align" : "bottom", "text_horizontal_align" : "center", "x" : 0, "y" : 70, },
-
Synchronization of two servers
Finnael replied to AlphaDesign's topic in Community Support - Questions & Answers
lel -
Synchronization of two servers
Finnael replied to AlphaDesign's topic in Community Support - Questions & Answers
Yes the game can work like this because all the cores are inside one machine. When one core requires the data the other core has it gets it instantly. But in this case the cores will be in different continents. Yes exactly. -
Synchronization of two servers
Finnael replied to AlphaDesign's topic in Community Support - Questions & Answers
So from what I understand you are suggesting to connect all the servers to the one master server and distribute information between them through the master server? Am I right? You say server needs to know the information if players are on the same map. Let's say we have two servers one inside EU and one in NA. And we have two players, player A is connected to the server in EU and the player B is connected to the one in NA. And let's say they are on the same map. If the player A moves how are you planning to send this information to player B? -
Synchronization of two servers
Finnael replied to AlphaDesign's topic in Community Support - Questions & Answers
Well, as far as I know this is not possible to do. At least in Metin2. As the information about two players might be stored in two different servers. And one of them might require the data the other one has. Or think about positions of players. Players send their locations to the server and server sends that information to the players that are connected to it. If another player is connected to a different server how are we gonna send this information to the other player that plays on a different server? -
Game - Client / Client - Game communication with Packets
Finnael replied to Sanchez's topic in Guides & HowTo
As far as I know, It doesn't. Thanks for the guide btw. Very helpful. -
Glad, I could help.
-
Yeah, that definitely looks much cleaner.
-
Is there a reason to not write the code like this? Am I missing something? if s >= 1 and s <= 7 then game.drop_item_with_ownership(Vnum ITEM, Quantity) elseif s == 8 then game.drop_item_with_ownership() end
-
It is not really that hard to do actually. Inside CRenderTarget.cpp there is a function called RenderModel. And inside that function there is this call: camera_manager.GetCurrentCamera()->SetViewParams( D3DXVECTOR3{ 0.0f, -1500.0f, 600.0f }, D3DXVECTOR3{ 0.0f, 0.0f, 95.0f }, D3DXVECTOR3{0.0f, 0.0f, 1.0f} ); The first parameter here is the position of our camera that looks at the target. Second paremeter is the position of our target. The third parameter here is not important for us. (Though it should be always D3DXVECTOR3{0.0f, 0.0f, 1.0f} otherwise we might get weird errors.) So if you want to zoom out you need to either change the position of the camera or the target. What can you do is have a member variable inside CRenderTarget class. Something like this : D3DXVECTOR3 m_cameraPosition; Initialize this variable inside CRenderTarget constructor like this: m_cameraPosition = D3DXVECTOR3{ 0.0f, -1500.0f, 600.0f }; And change the above code to this: camera_manager.GetCurrentCamera()->SetViewParams( m_cameraPosition, D3DXVECTOR3{ 0.0f, 0.0f, 95.0f }, D3DXVECTOR3{0.0f, 0.0f, 1.0f} ); Now when you change the m_cameraPosition to whatever value you want the camera position will be changed instantly.
-
Make All dragon soul refine
Finnael replied to Satan's topic in Community Support - Questions & Answers
Can you send us the link of the system, so we can look at the code? -
That concept art is really good though, especially when you compared it to the actual model. But I really like the cartonny style of character models.They looked really good back in 2004-2005. I wonder how the same style would look like in 2020.
-
Is having a completely rewritten server enough to not get sued by Gameforge though? Even if you do rewrite the client side from scratch, you are still gonna use their 3D models, textures, sound effects etc. If you use these without permission that should be enough for them to sue you. And if you have plans to remake those assets too why don't you just make a new game at this point? I don't know but this doesn't sound like a project two or three hobbyist can do in their spare time.
-
You mean like zooming or rotating the object?