Jump to content

Hidden Costume System


Recommended Posts

  • Active Member

M2 Download Center

This is the hidden content, please
( Internal )

Hello There.
I publish here this system i hope that this help you a bit :D with this you can hide your costume if you dont like it :D

(if I forgot something just say it :) ) (this system is not complete yet you can hide only your costume no hairstyle,sash,weapon)

(This system is not mine! i just found the source function and made the python codes and quest)

  • Metin2 Dev 111
  • Angry 2
  • Not Good 3
  • Sad 1
  • Cry 2
  • Smile Tear 1
  • Think 1
  • Confused 2
  • Lmao 1
  • Good 31
  • Love 5
  • Love 136

Untitled.png

Link to comment
Share on other sites

Not completely your tutorial, here i give you full parts xD

1. Search in char.cpp:

cannot_dead = false;

2. Add below:
costume_visible = true;

1. Search:
WORD CHARACTER::GetPart(BYTE bPartPos) const
	{
	    assert(bPartPos < PART_MAX_NUM);
	    return m_pointsInstant.parts[bPartPos];
	}

2. Change with:
WORD CHARACTER::GetPart(BYTE bPartPos) const
{
	assert(bPartPos < PART_MAX_NUM);
	if(bPartPos == PART_MAIN && GetWear(WEAR_COSTUME_BODY) && CostumeVisible() == false)
		if(const LPITEM pArmor = GetWear(WEAR_BODY))
			return pArmor->GetVnum();

	return m_pointsInstant.parts[bPartPos];
}

1. Search:

WORD CHARACTER::GetOriginalPart(BYTE bPartPos) const
{
	switch (bPartPos)
	{
		case PART_MAIN:
			if (!IsPC())
				return GetPart(PART_MAIN);
			else
				return m_pointsInstant.bBasePart;
		case PART_HAIR:
			return GetPart(PART_HAIR);	
		case PART_ACCE:
			return GetPart(PART_ACCE);
		default:
			return 0;
	}
}

 2. Change with:
WORD CHARACTER::GetOriginalPart(BYTE bPartPos) const
{
	switch(bPartPos)
	{
		case PART_MAIN:
			if(GetWear(WEAR_COSTUME_BODY) && CostumeVisible() == false)
				if(const LPITEM pArmor = GetWear(WEAR_BODY))
					return pArmor->GetVnum();

			if(!IsPC())
				return GetPart(PART_MAIN);
			else
				return m_pointsInstant.bBasePart;
		case PART_HAIR:
			return GetPart(PART_HAIR);
#ifdef __ENABLE_ACCE_
        case PART_ACCE:
            return GetPart(PART_ACCE);
#endif
		default:
			return 0;
	}
}

1. Search in char.h:

void            SetLastSyncTime(const timeval &tv) { memcpy(&m_tvLastSyncTime, &tv, sizeof(timeval)); }
	        const timeval&    GetLastSyncTime() { return m_tvLastSyncTime; }
	        void            SetSyncHackCount(int iCount) { m_iSyncHackCount = iCount;}
	        int                GetSyncHackCount() { return m_iSyncHackCount; }

2. Add below:
	public:

	    bool CostumeVisible() const { return costume_visible; };

	    void SetCostumeVisible(bool visible) { costume_visible = visible; };

	private:

	    bool costume_visible;

1. Search in item.cpp:
		case ITEM_ARMOR:
			{
				if (0 != m_pOwner->GetWear(WEAR_COSTUME_BODY))
					break;

				if (GetSubType() == ARMOR_BODY || GetSubType() == ARMOR_HEAD || GetSubType() == ARMOR_FOOTS || GetSubType() == ARMOR_SHIELD)
				{
					if (bAdd)
					{
						if (GetProto()->bSubType == ARMOR_BODY)
							m_pOwner->SetPart(PART_MAIN, GetVnum());
					}
					else
					{
						if (GetProto()->bSubType == ARMOR_BODY)
							m_pOwner->SetPart(PART_MAIN, m_pOwner->GetOriginalPart(PART_MAIN));
					}
				}
			}
			break;

2. Delete function and change with this:

		case ITEM_ARMOR:
		{
			if(m_pOwner->GetWear(WEAR_COSTUME_BODY) && m_pOwner->CostumeVisible() == true)
				break;

			if(GetSubType() == ARMOR_BODY || GetSubType() == ARMOR_HEAD || GetSubType() == ARMOR_FOOTS || GetSubType() == ARMOR_SHIELD)
			{
				if(bAdd)
				{
					if(GetProto()->bSubType == ARMOR_BODY)
						m_pOwner->SetPart(PART_MAIN, GetVnum());
				}
				else
				{
					if(GetProto()->bSubType == ARMOR_BODY)
						m_pOwner->SetPart(PART_MAIN, m_pOwner->GetOriginalPart(PART_MAIN));
				}
			}
		}
			break;

1. Search:

		case ITEM_COSTUME:
			{
				DWORD toSetValue = this->GetVnum();
				EParts toSetPart = PART_MAX_NUM;
				if (GetSubType() == COSTUME_BODY)
				{
					toSetPart = PART_MAIN;
					if (false == bAdd)
					{
						const CItem* pArmor = m_pOwner->GetWear(WEAR_BODY);
						toSetValue = (NULL != pArmor) ? pArmor->GetVnum() : m_pOwner->GetOriginalPart(PART_MAIN);						
					}
					
				}

2. Change with:

		case ITEM_COSTUME:
		{
			DWORD toSetValue = this->GetVnum();
			EParts toSetPart = PART_MAX_NUM;

			if(GetSubType() == COSTUME_BODY)
			{
				toSetPart = PART_MAIN;
				if(false == bAdd || (m_pOwner->GetWear(WEAR_BODY) && m_pOwner->CostumeVisible() == false))
				{
					const CItem* pArmor = m_pOwner->GetWear(WEAR_BODY);
					toSetValue = (NULL != pArmor) ? pArmor->GetVnum() : m_pOwner->GetOriginalPart(PART_MAIN);
				}
			}

Good quest:

quest costume begin
	state start begin
		when login begin
			cmdchat("costume "..q.getcurrentquestindex())
		end
		when button or info begin
			if pc.getqf("costume") == 1 then
				chat("You chose visibility costume.")
				pc.setqf("costume", 2)
				pc.costume(0)
			elseif pc.getqf("costume") == 2 then
				chat("You chose visibility armor.")
				pc.setqf("costume", 1)
				pc.costume(1)
			end
		end
	end
end
 
quest login_costume_use begin
	state start begin
		when login with pc.getqf("block_quest") == 0 begin
			pc.setqf("block_quest", 1)
			pc.setf("costume", "costume", 1)
		end
	end
end

 
Edited by VegaS
t
  • Love 8
Link to comment
Share on other sites

  • Active Member
2 minutes ago, VegaS said:

Not completely, i give you other part ( this code is not mine):

1. Search in char.cpp:


codecannot_dead = false;


 

2. Add below:


costume_visible = true;


 

1. Search:

 


WORD CHARACTER::GetPart(BYTE bPartPos) const
	{
	    assert(bPartPos < PART_MAX_NUM);
	    return m_pointsInstant.parts[bPartPos];
	}


 

2. Change with:


WORD CHARACTER::GetPart(BYTE bPartPos) const
{
	assert(bPartPos < PART_MAX_NUM);
	if(bPartPos == PART_MAIN && GetWear(WEAR_COSTUME_BODY) && CostumeVisible() == false)
		if(const LPITEM pArmor = GetWear(WEAR_BODY))
			return pArmor->GetVnum();

	return m_pointsInstant.parts[bPartPos];
}

 

1. Search:


WORD CHARACTER::GetOriginalPart(BYTE bPartPos) const
{
	switch (bPartPos)
	{
		case PART_MAIN:
			if (!IsPC())
				return GetPart(PART_MAIN);
			else
				return m_pointsInstant.bBasePart;
		case PART_HAIR:
			return GetPart(PART_HAIR);	
		case PART_ACCE:
			return GetPart(PART_ACCE);
		default:
			return 0;
	}
}


 

2. Change with:


WORD CHARACTER::GetOriginalPart(BYTE bPartPos) const
{
	switch(bPartPos)
	{
		case PART_MAIN:
			if(GetWear(WEAR_COSTUME_BODY) && CostumeVisible() == false)
				if(const LPITEM pArmor = GetWear(WEAR_BODY))
					return pArmor->GetVnum();

			if(!IsPC())
				return GetPart(PART_MAIN);
			else
				return m_pointsInstant.bBasePart;
		case PART_HAIR:
			return GetPart(PART_HAIR);
#ifdef __ENABLE_ACCE_
        case PART_ACCE:
            return GetPart(PART_ACCE);
#endif
		default:
			return 0;
	}
}

 

1. Search in char.h:


void            SetLastSyncTime(const timeval &tv) { memcpy(&m_tvLastSyncTime, &tv, sizeof(timeval)); }
	        const timeval&    GetLastSyncTime() { return m_tvLastSyncTime; }
	        void            SetSyncHackCount(int iCount) { m_iSyncHackCount = iCount;}
	        int                GetSyncHackCount() { return m_iSyncHackCount; }


 

2. Add below:


	public:

	    bool CostumeVisible() const { return costume_visible; };

	    void SetCostumeVisible(bool visible) { costume_visible = visible; };

	private:

	    bool costume_visible;


 

1. Search in item.cpp:


		case ITEM_ARMOR:
			{
				if (0 != m_pOwner->GetWear(WEAR_COSTUME_BODY))
					break;

				if (GetSubType() == ARMOR_BODY || GetSubType() == ARMOR_HEAD || GetSubType() == ARMOR_FOOTS || GetSubType() == ARMOR_SHIELD)
				{
					if (bAdd)
					{
						if (GetProto()->bSubType == ARMOR_BODY)
							m_pOwner->SetPart(PART_MAIN, GetVnum());
					}
					else
					{
						if (GetProto()->bSubType == ARMOR_BODY)
							m_pOwner->SetPart(PART_MAIN, m_pOwner->GetOriginalPart(PART_MAIN));
					}
				}
			}
			break;

 

2. Delete function and change with this:


		case ITEM_ARMOR:
		{
			if(m_pOwner->GetWear(WEAR_COSTUME_BODY) && m_pOwner->CostumeVisible() == true)
				break;

			if(GetSubType() == ARMOR_BODY || GetSubType() == ARMOR_HEAD || GetSubType() == ARMOR_FOOTS || GetSubType() == ARMOR_SHIELD)
			{
				if(bAdd)
				{
					if(GetProto()->bSubType == ARMOR_BODY)
						m_pOwner->SetPart(PART_MAIN, GetVnum());
				}
				else
				{
					if(GetProto()->bSubType == ARMOR_BODY)
						m_pOwner->SetPart(PART_MAIN, m_pOwner->GetOriginalPart(PART_MAIN));
				}
			}
		}
			break;

 

1. Search:

        


		case ITEM_COSTUME:
			{
				DWORD toSetValue = this->GetVnum();
				EParts toSetPart = PART_MAX_NUM;
				if (GetSubType() == COSTUME_BODY)
				{
					toSetPart = PART_MAIN;
					if (false == bAdd)
					{
						const CItem* pArmor = m_pOwner->GetWear(WEAR_BODY);
						toSetValue = (NULL != pArmor) ? pArmor->GetVnum() : m_pOwner->GetOriginalPart(PART_MAIN);						
					}
					
				}

 

2. Change with:


		case ITEM_COSTUME:
		{
			DWORD toSetValue = this->GetVnum();
			EParts toSetPart = PART_MAX_NUM;

			if(GetSubType() == COSTUME_BODY)
			{
				toSetPart = PART_MAIN;
				if(false == bAdd || (m_pOwner->GetWear(WEAR_BODY) && m_pOwner->CostumeVisible() == false))
				{
					const CItem* pArmor = m_pOwner->GetWear(WEAR_BODY);
					toSetValue = (NULL != pArmor) ? pArmor->GetVnum() : m_pOwner->GetOriginalPart(PART_MAIN);
				}
			}

 

Good quest:


quest costume begin
	state start begin
		when login begin
			cmdchat("costume "..q.getcurrentquestindex())
		end
		when button or info begin
			if pc.getqf("costume") == 1 then
				chat("You chose visibility costume.")
				pc.setqf("costume", 2)
				pc.costume(0)
			elseif pc.getqf("costume") == 2 then
				chat("You chose visibility armor.")
				pc.setqf("costume", 1)
				pc.costume(1)
			end
		end
	end
end


 

quest login_costume begin
	state start begin
		when login with pc.getqf("block_quest") == 0 begin
			pc.give_item2(50187, 1)
			pc.setqf("block_quest", 1)
			pc.setf("costume", "costume", 1)
		end
	end
end


 

Nice!! Thanks :)

  • Love 1

Untitled.png

Link to comment
Share on other sites

12 hours ago, VegaS said:

Not completely, i give you other part ( Some parts of the code are not mine ):

1. Search in char.cpp:


cannot_dead = false;


 

2. Add below:


costume_visible = true;


 

1. Search:


WORD CHARACTER::GetPart(BYTE bPartPos) const
	{
	    assert(bPartPos < PART_MAX_NUM);
	    return m_pointsInstant.parts[bPartPos];
	}


 

2. Change with:


WORD CHARACTER::GetPart(BYTE bPartPos) const
{
	assert(bPartPos < PART_MAX_NUM);
	if(bPartPos == PART_MAIN && GetWear(WEAR_COSTUME_BODY) && CostumeVisible() == false)
		if(const LPITEM pArmor = GetWear(WEAR_BODY))
			return pArmor->GetVnum();

	return m_pointsInstant.parts[bPartPos];
}

 

1. Search:


WORD CHARACTER::GetOriginalPart(BYTE bPartPos) const
{
	switch (bPartPos)
	{
		case PART_MAIN:
			if (!IsPC())
				return GetPart(PART_MAIN);
			else
				return m_pointsInstant.bBasePart;
		case PART_HAIR:
			return GetPart(PART_HAIR);	
		case PART_ACCE:
			return GetPart(PART_ACCE);
		default:
			return 0;
	}
}


 

2. Change with:


WORD CHARACTER::GetOriginalPart(BYTE bPartPos) const
{
	switch(bPartPos)
	{
		case PART_MAIN:
			if(GetWear(WEAR_COSTUME_BODY) && CostumeVisible() == false)
				if(const LPITEM pArmor = GetWear(WEAR_BODY))
					return pArmor->GetVnum();

			if(!IsPC())
				return GetPart(PART_MAIN);
			else
				return m_pointsInstant.bBasePart;
		case PART_HAIR:
			return GetPart(PART_HAIR);
#ifdef __ENABLE_ACCE_
        case PART_ACCE:
            return GetPart(PART_ACCE);
#endif
		default:
			return 0;
	}
}

 

1. Search in char.h:


void            SetLastSyncTime(const timeval &tv) { memcpy(&m_tvLastSyncTime, &tv, sizeof(timeval)); }
	        const timeval&    GetLastSyncTime() { return m_tvLastSyncTime; }
	        void            SetSyncHackCount(int iCount) { m_iSyncHackCount = iCount;}
	        int                GetSyncHackCount() { return m_iSyncHackCount; }


 

2. Add below:


	public:

	    bool CostumeVisible() const { return costume_visible; };

	    void SetCostumeVisible(bool visible) { costume_visible = visible; };

	private:

	    bool costume_visible;


 

1. Search in item.cpp:


		case ITEM_ARMOR:
			{
				if (0 != m_pOwner->GetWear(WEAR_COSTUME_BODY))
					break;

				if (GetSubType() == ARMOR_BODY || GetSubType() == ARMOR_HEAD || GetSubType() == ARMOR_FOOTS || GetSubType() == ARMOR_SHIELD)
				{
					if (bAdd)
					{
						if (GetProto()->bSubType == ARMOR_BODY)
							m_pOwner->SetPart(PART_MAIN, GetVnum());
					}
					else
					{
						if (GetProto()->bSubType == ARMOR_BODY)
							m_pOwner->SetPart(PART_MAIN, m_pOwner->GetOriginalPart(PART_MAIN));
					}
				}
			}
			break;

 

2. Delete function and change with this:


		case ITEM_ARMOR:
		{
			if(m_pOwner->GetWear(WEAR_COSTUME_BODY) && m_pOwner->CostumeVisible() == true)
				break;

			if(GetSubType() == ARMOR_BODY || GetSubType() == ARMOR_HEAD || GetSubType() == ARMOR_FOOTS || GetSubType() == ARMOR_SHIELD)
			{
				if(bAdd)
				{
					if(GetProto()->bSubType == ARMOR_BODY)
						m_pOwner->SetPart(PART_MAIN, GetVnum());
				}
				else
				{
					if(GetProto()->bSubType == ARMOR_BODY)
						m_pOwner->SetPart(PART_MAIN, m_pOwner->GetOriginalPart(PART_MAIN));
				}
			}
		}
			break;

 

1. Search:


		case ITEM_COSTUME:
			{
				DWORD toSetValue = this->GetVnum();
				EParts toSetPart = PART_MAX_NUM;
				if (GetSubType() == COSTUME_BODY)
				{
					toSetPart = PART_MAIN;
					if (false == bAdd)
					{
						const CItem* pArmor = m_pOwner->GetWear(WEAR_BODY);
						toSetValue = (NULL != pArmor) ? pArmor->GetVnum() : m_pOwner->GetOriginalPart(PART_MAIN);						
					}
					
				}

 

2. Change with:


		case ITEM_COSTUME:
		{
			DWORD toSetValue = this->GetVnum();
			EParts toSetPart = PART_MAX_NUM;

			if(GetSubType() == COSTUME_BODY)
			{
				toSetPart = PART_MAIN;
				if(false == bAdd || (m_pOwner->GetWear(WEAR_BODY) && m_pOwner->CostumeVisible() == false))
				{
					const CItem* pArmor = m_pOwner->GetWear(WEAR_BODY);
					toSetValue = (NULL != pArmor) ? pArmor->GetVnum() : m_pOwner->GetOriginalPart(PART_MAIN);
				}
			}

 

Good quest:


quest costume begin
	state start begin
		when login begin
			cmdchat("costume "..q.getcurrentquestindex())
		end
		when button or info begin
			if pc.getqf("costume") == 1 then
				chat("You chose visibility costume.")
				pc.setqf("costume", 2)
				pc.costume(0)
			elseif pc.getqf("costume") == 2 then
				chat("You chose visibility armor.")
				pc.setqf("costume", 1)
				pc.costume(1)
			end
		end
	end
end


 

quest login_costume_use begin
	state start begin
		when login with pc.getqf("block_quest") == 0 begin
			pc.setqf("block_quest", 1)
			pc.setf("costume", "costume", 1)
		end
	end
end


 

sysser

 

521 13:01:33885 :: Traceback (most recent call last):

0521 13:01:33885 ::   File "ui.py", line 1097, in CallEvent

0521 13:01:33885 ::   File "ui.py", line 88, in __call__

0521 13:01:33885 ::   File "ui.py", line 70, in __call__

0521 13:01:33886 ::   File "uiInventory.py", line 507, in ClickCostumeButton

0521 13:01:33886 ::   File "uiInventory.py", line 47, in __init__

0521 13:01:33886 ::   File "uiInventory.py", line 89, in __LoadWindow

0521 13:01:33886 :: AttributeError 0521 13:01:33886 :: :  0521 13:01:33886 :: 'CostumeWindow' object has no attribute 'costume' 0521 13:01:33886 ::   

costumewindow.py

 

http://paste2.org/yg28Cjvd

 

 

 

where is the problem ?
Link to comment
Share on other sites

Where i have problem ? :) 

Spoiler

quest costume begin
    state start begin
        when login begin
            cmdchat("costume "..q.getcurrentquestindex())
        end
        when button or info begin
            if pc.getqf("costume") == 1 then
                chat("You chose visibility costume.")
                pc.setqf("costume", 2)
                pc.costume(0)
            elseif pc.getqf("costume") == 2 then
                chat("You chose visibility armor.")
                pc.setqf("costume", 1)
                pc.costume(1)
            end
        end
    end
end
 

syserr

Spoiler

SYSERR: May 21 16:08:05 :: RunState: LUA_ERROR: [string "costume"]:4: attempt to call field `costume' (a nil value)
SYSERR: May 21 16:08:05 :: WriteRunningStateToSyserr: LUA_ERROR: quest costume.start click
SYSERR: May 21 16:08:05 :: Input: no quest running for pc, cannot process input : 9088
SYSERR: May 21 16:08:07 :: RunState: LUA_ERROR: [string "costume"]:8: attempt to call field `costume' (a nil value)
SYSERR: May 21 16:08:07 :: WriteRunningStateToSyserr: LUA_ERROR: quest costume.start click
SYSERR: May 21 16:08:07 :: Input: no quest running for pc, cannot process input : 9088
 

 

Link to comment
Share on other sites

1 minute ago, gummyantifi said:

Where i have problem ? :) 

  Hide contents

quest costume begin
    state start begin
        when login begin
            cmdchat("costume "..q.getcurrentquestindex())
        end
        when button or info begin
            if pc.getqf("costume") == 1 then
                chat("You chose visibility costume.")
                pc.setqf("costume", 2)
                pc.costume(0)
            elseif pc.getqf("costume") == 2 then
                chat("You chose visibility armor.")
                pc.setqf("costume", 1)
                pc.costume(1)
            end
        end
    end
end
 

syserr

  Hide contents

SYSERR: May 21 16:08:05 :: RunState: LUA_ERROR: [string "costume"]:4: attempt to call field `costume' (a nil value)
SYSERR: May 21 16:08:05 :: WriteRunningStateToSyserr: LUA_ERROR: quest costume.start click
SYSERR: May 21 16:08:05 :: Input: no quest running for pc, cannot process input : 9088
SYSERR: May 21 16:08:07 :: RunState: LUA_ERROR: [string "costume"]:8: attempt to call field `costume' (a nil value)
SYSERR: May 21 16:08:07 :: WriteRunningStateToSyserr: LUA_ERROR: quest costume.start click
SYSERR: May 21 16:08:07 :: Input: no quest running for pc, cannot process input : 9088
 

 

my problem you

Link to comment
Share on other sites

  • Active Member
2 hours ago, gummyantifi said:

Where i have problem ? :) 

  Reveal hidden contents

quest costume begin
    state start begin
        when login begin
            cmdchat("costume "..q.getcurrentquestindex())
        end
        when button or info begin
            if pc.getqf("costume") == 1 then
                chat("You chose visibility costume.")
                pc.setqf("costume", 2)
                pc.costume(0)
            elseif pc.getqf("costume") == 2 then
                chat("You chose visibility armor.")
                pc.setqf("costume", 1)
                pc.costume(1)
            end
        end
    end
end
 

syserr

  Reveal hidden contents

SYSERR: May 21 16:08:05 :: RunState: LUA_ERROR: [string "costume"]:4: attempt to call field `costume' (a nil value)
SYSERR: May 21 16:08:05 :: WriteRunningStateToSyserr: LUA_ERROR: quest costume.start click
SYSERR: May 21 16:08:05 :: Input: no quest running for pc, cannot process input : 9088
SYSERR: May 21 16:08:07 :: RunState: LUA_ERROR: [string "costume"]:8: attempt to call field `costume' (a nil value)
SYSERR: May 21 16:08:07 :: WriteRunningStateToSyserr: LUA_ERROR: quest costume.start click
SYSERR: May 21 16:08:07 :: Input: no quest running for pc, cannot process input : 9088
 

 

Try this two quest's vega's had post:

 

Spoiler

quest costume begin
	state start begin
		when login begin
			cmdchat("costume "..q.getcurrentquestindex())
		end
		when button or info begin
			if pc.getqf("costume") == 1 then
				chat("You chose visibility costume.")
				pc.setqf("costume", 2)
				pc.costume(0)
			elseif pc.getqf("costume") == 2 then
				chat("You chose visibility armor.")
				pc.setqf("costume", 1)
				pc.costume(1)
			end
		end
	end
end

 

Spoiler

quest login_costume_use begin
	state start begin
		when login with pc.getqf("block_quest") == 0 begin
			pc.setqf("block_quest", 1)
			pc.setf("costume", "costume", 1)
		end
	end
end


(Make sure you have in quest functions pc.costume)
 

Untitled.png

Link to comment
Share on other sites

2 minutes ago, Law™ said:

Try this two quest's vega's had post:

 

  Hide contents


quest costume begin
	state start begin
		when login begin
			cmdchat("costume "..q.getcurrentquestindex())
		end
		when button or info begin
			if pc.getqf("costume") == 1 then
				chat("You chose visibility costume.")
				pc.setqf("costume", 2)
				pc.costume(0)
			elseif pc.getqf("costume") == 2 then
				chat("You chose visibility armor.")
				pc.setqf("costume", 1)
				pc.costume(1)
			end
		end
	end
end

 

  Hide contents


quest login_costume_use begin
	state start begin
		when login with pc.getqf("block_quest") == 0 begin
			pc.setqf("block_quest", 1)
			pc.setf("costume", "costume", 1)
		end
	end
end


(Make sure you have in quest functions pc.costume)
 

I test this.

In game click on button and "text in chat" and no reaktion :)

I have kostume and armor on equipment and sysser write this

SYSERR: May 21 16:08:05 :: RunState: LUA_ERROR: [string "costume"]:4: attempt to call field `costume' (a nil value)
SYSERR: May 21 16:08:05 :: WriteRunningStateToSyserr: LUA_ERROR: quest costume.start click
SYSERR: May 21 16:08:05 :: Input: no quest running for pc, cannot process input : 9088
SYSERR: May 21 16:08:07 :: RunState: LUA_ERROR: [string "costume"]:8: attempt to call field `costume' (a nil value)
SYSERR: May 21 16:08:07 :: WriteRunningStateToSyserr: LUA_ERROR: quest costume.start click
SYSERR: May 21 16:08:07 :: Input: no quest running for pc, cannot process input : 9088

 

 

Link to comment
Share on other sites

7 minutes ago, Law™ said:

add me on skype so i try to help you on night :)


 

readly file uiscript/costumewindows.py can you throw

 

I got an error

pack sysser 

 

Spoiler

 

521 13:01:33885 :: Traceback (most recent call last):

0521 13:01:33885 ::   File "ui.py", line 1097, in CallEvent

0521 13:01:33885 ::   File "ui.py", line 88, in __call__

0521 13:01:33885 ::   File "ui.py", line 70, in __call__

0521 13:01:33886 ::   File "uiInventory.py", line 507, in ClickCostumeButton

0521 13:01:33886 ::   File "uiInventory.py", line 47, in __init__

0521 13:01:33886 ::   File "uiInventory.py", line 89, in __LoadWindow

0521 13:01:33886 :: AttributeError 0521 13:01:33886 :: :  0521 13:01:33886 :: 'CostumeWindow' object has no attribute 'costume' 0521 13:01:33886 ::   

 

they have costumewindow.py

http://paste2.org/yg28Cjvd

what cloud be my problem

Link to comment
Share on other sites

1 hour ago, EmreGokceSnsz said:


 

readly file uiscript/costumewindows.py can you throw

 

I got an error

pack sysser 

 

  Hide contents

 

521 13:01:33885 :: Traceback (most recent call last):

0521 13:01:33885 ::   File "ui.py", line 1097, in CallEvent

0521 13:01:33885 ::   File "ui.py", line 88, in __call__

0521 13:01:33885 ::   File "ui.py", line 70, in __call__

0521 13:01:33886 ::   File "uiInventory.py", line 507, in ClickCostumeButton

0521 13:01:33886 ::   File "uiInventory.py", line 47, in __init__

0521 13:01:33886 ::   File "uiInventory.py", line 89, in __LoadWindow

0521 13:01:33886 :: AttributeError 0521 13:01:33886 :: :  0521 13:01:33886 :: 'CostumeWindow' object has no attribute 'costume' 0521 13:01:33886 ::   

 

they have costumewindow.py

http://paste2.org/yg28Cjvd

what cloud be my problem

Check your file uiinventory.py

Link to comment
Share on other sites

  • 1 month later...
  • 3 weeks later...

Announcements



  • Similar Content

  • Similar Content

  • Similar Content

  • Tags

  • Activity

    1. 2

      Feeding game source to LLM

    2. 0

      Target Information System

    3. 2

      Feeding game source to LLM

    4. 2

      anti exp explanation pls

    5. 2

      Feeding game source to LLM

    6. 2

      anti exp explanation pls

    7. 0

      [GR2] Positioning an object added with "Attach"

  • Recently Browsing

    • No registered users viewing this page.
×
×
  • 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.