Jump to content

xP3NG3Rx

Honorable Member
  • Posts

    839
  • Joined

  • Days Won

    393
  • Feedback

    100%

Posts posted by xP3NG3Rx

  1. Yes, the models and texture released already on elitepvpers.com but the thread already deleted..
    http://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/3871440-release-metin2_patch_new_halloween_weapon-beta-update-22-09-2015-a.html

    Anyway, when I downloaded it, I imported to my account too, here is the link:

    • Metin2 Dev 1
    • Love 10
  2. case SHOP_SUBHEADER_GC_UPDATE_PRICE:
                PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetShopSellingPrice", Py_BuildValue("(i)", *(int *)&vecBuffer[0]));
                break;

    This is not compatible with long long, but you should do this way:

    		case SHOP_SUBHEADER_GC_UPDATE_PRICE:
    			PyObject *args = PyTuple_New(1);
    			PyTuple_SetItem(args, 0, PyLong_FromLongLong(*(long long *)&vecBuffer[0]));
    			PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetShopSellingPrice", args);
    

    As here, this is not useful with long long:

    				PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "OnPickMoney", Py_BuildValue("(i)", (int)PointChange.amount));
    

    Replace with:

    				PyObject *args = PyTuple_New(1);
    				PyTuple_SetItem(args, 0, PyLong_FromLongLong(PointChange.amount));
    				PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "OnPickMoney", args);
    
    • Love 1
  3. 	effect.RegisterIndexedFlyData(effect.FLY_SKILL_MUYEONG, effect.INDEX_FLY_TYPE_AUTO_FIRE, "d:/ymir work/pc/sura/effect/muyeong_fly.msf")					## ą«żµÁř
    	if app.ENABLE_QUIVER_SYSTEM:
    		effect.RegisterIndexedFlyData(effect.FLY_QUIVER_ATTACK_NORMAL, effect.INDEX_FLY_TYPE_NORMAL, "d:/ymir work/pc/assassin/effect/arrow_02.msf")
    

    You can find in metin2_patch_etc.

    This is the hidden content, please

    • Love 3
  4. Server\game\src\shop.cpp > "int CShop::Buy(LPCHARACTER ch, BYTE pos)"

    Search and replace this:

    	if (IsPCShop())
    	{
    		if (!pkSelectedItem)
    		{
    			sys_log(0, "Shop::Buy : Critical: This user seems to be a hacker : invalid pcshop item : BuyerPID:%d SellerPID:%d",
    					ch->GetPlayerID(),
    					m_pkPC->GetPlayerID());
    
    			return false;
    		}
    
    		if ((pkSelectedItem->GetOwner() != m_pkPC))
    		{
    			sys_log(0, "Shop::Buy : Critical: This user seems to be a hacker : invalid pcshop item : BuyerPID:%d SellerPID:%d",
    					ch->GetPlayerID(),
    					m_pkPC->GetPlayerID());
    
    			return false;
    		}
    	}
    

    With this:

    	if (IsPCShop())
    	{
    		if (!pkSelectedItem)
    		{
    			sys_log(0, "Shop::Buy1 : Critical: This user seems to be a hacker : invalid pcshop item : BuyerPID:%d SellerPID:%d",
    					ch->GetPlayerID(),
    					m_pkPC->GetPlayerID());
    
    			return SHOP_SUBHEADER_GC_SOLDOUT;
    		}
    
    		if ((pkSelectedItem->GetOwner() != m_pkPC))
    		{
    			sys_log(0, "Shop::Buy2 : Critical: This user seems to be a hacker : invalid pcshop item : BuyerPID:%d SellerPID:%d",
    					ch->GetPlayerID(),
    					m_pkPC->GetPlayerID());
    
    			return SHOP_SUBHEADER_GC_SOLDOUT;
    		}
    	}
    

    You could remove the sys_log about hacker thing because it not necessary.

    	if (IsPCShop() && (!pkSelectedItem || pkSelectedItem->GetOwner() != m_pkPC))
    		return SHOP_SUBHEADER_GC_SOLDOUT;
    

    • Love 1
  5. With this will work properly.

    function say_title_center(msg,r,g,b)
    	local _color
    	if (r and g and b) == nil then
    		_color = color256(255, 230, 186)
    	else
    		_color = color256(r, g, b)
    	end
    	raw_script(string.format("[TEXT_HORIZONTAL_ALIGN_CENTER]%s%s%s[/TEXT_HORIZONTAL_ALIGN_CENTER][ENTER]", _color, msg, color256(196, 196, 196)))
    end
    

     

    • Love 3
  6. Hmm, yes, I forgot the GameLib> ItemData.cpp, sorry and I'll edit the download with this:

    const char* CItemData::GetUseTypeString() const
    {
    	if (GetType() != CItemData::ITEM_TYPE_USE)
    		return "NOT_USE_TYPE";
    
    	switch (GetSubType())
    	{
    		case USE_TUNING:
    			return DEF_STR(USE_TUNING);
    		case USE_DETACHMENT:
    			return DEF_STR(USE_DETACHMENT);
    		case USE_CLEAN_SOCKET:
    			return DEF_STR(USE_CLEAN_SOCKET);
    		case USE_CHANGE_ATTRIBUTE:
    			return DEF_STR(USE_CHANGE_ATTRIBUTE);
    		case USE_ADD_ATTRIBUTE:
    			return DEF_STR(USE_ADD_ATTRIBUTE);
    		case USE_ADD_ATTRIBUTE2:
    			return DEF_STR(USE_ADD_ATTRIBUTE2);
    		case USE_ADD_ACCESSORY_SOCKET:
    			return DEF_STR(USE_ADD_ACCESSORY_SOCKET);
    		case USE_PUT_INTO_ACCESSORY_SOCKET:
    			return DEF_STR(USE_PUT_INTO_ACCESSORY_SOCKET);
    		case USE_PUT_INTO_BELT_SOCKET:
    			return DEF_STR(USE_PUT_INTO_BELT_SOCKET);
    		case USE_PUT_INTO_RING_SOCKET:
    			return DEF_STR(USE_PUT_INTO_RING_SOCKET);
    		case USE_CHANGE_COSTUME_ATTR:
    			return DEF_STR(USE_CHANGE_COSTUME_ATTR);
    		case USE_RESET_COSTUME_ATTR:
    			return DEF_STR(USE_RESET_COSTUME_ATTR);
    	}
    	return "USE_UNKNOWN_TYPE";
    }
    

     

    • Love 1
  7. You can align the lines to center with this script from 2008(bin_r23166 I have no prior bin :3):

    raw_script("[TEXT_HORIZONTAL_ALIGN_CENTER]")

    Just the reset function is unimplemented in the original src.
    I'm thinking for this:

    raw_script("[/TEXT_HORIZONTAL_ALIGN_CENTER]")

    UserInterface/PythonEventManger.cpp > void CPythonEventManager::ProcessEventSet(TEventSet * pEventSet)

    		case EVENT_TYPE_TEXT_HORIZONTAL_ALIGN_CENTER:
    		{
    			if (EVENT_POSITION_START == pEventPosition)
    			{
    				pEventSet->isTextCenterMode = true;
    				if (pEventSet->pCurrentTextLine)
    					pEventSet->pCurrentTextLine->SetHorizonalAlign(CGraphicTextInstance::HORIZONTAL_ALIGN_CENTER);
    			}
    			else
    				pEventSet->isTextCenterMode = false;
    
    			break;
    


     

    • Love 2
  8. #nosupport #noreply #nopm #doityourself :)

    Here is mine with new use subtypes, Official like:

    This is the hidden content, please

    #Edit: I will not edit the download but here is a little fix, about ymir's fail:

    Search these lines in uiInventory.py:

    if player.GetItemAttribute(dstSlotPos, i) != 0:

    And replace with:

    if player.GetItemAttribute(dstSlotPos, i)[0] != 0:

    Why?
    Easy, because the player.GetItemAttribute give back 2 values as always in standard case (0, 0) which is a tuple, the comparison is return true every times.

    • Metin2 Dev 13
    • Confused 1
    • Good 5
    • Love 11
×
×
  • 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.