Jump to content

Finnael

Inactive Member
  • Posts

    51
  • Joined

  • Last visited

  • Days Won

    3
  • Feedback

    0%

Posts posted by Finnael

  1. 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
    	

     

  2. 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.

  3. 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);

     

  4. 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,
                    },
    • Love 1
  5. 24 minutes ago, Distraught said:

    Actually this is how the game now works. Don't put a map in more than one channel and its redirecting you between its cores.

    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.

     

    8 minutes ago, tierrilopes said:

    Using the example above, player A has delay to communicate to the server his connected to, same does player B.  But then theres also the delay between both servers.

    Considering the server-server delay, couldnt it do more harm then good in some ocasions?

    Yes exactly. 

  6. 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?

     

  7. 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? 

  8. 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
    
    

  9. 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.

    • Love 3
  10. On 8/7/2020 at 9:26 AM, LastSamurai23 said:

     

    BmQBbab.jpg

    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.

    • Good 1
    • Love 2
  11. 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.

×
×
  • 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.