Title system by lent

Totalitatea subiectelor care nu respectă regulamentul impus in sectiunea "Probleme şi Întrebări" vor fi stocate aici.
Închis
Avatar utilizator
coadapute123
Utilizator interzis !

Utilizator interzis !
Mesaje: 536
Membru din: 05 Ian 2019, 14:04
Server: Heroes2
Regat: Jinno
Aprecieri: 103  
Mulţumiri: 362  
Discord: Copiază ID
Medalii

*Problemă:La compilarea game
obj/char.o: In function `CHARACTER::CreatePlayerProto(SPlayerTable&)': /usr/src/SursaFIXURI/Server/game/src/char.cpp:1164: undefined reference to `CHARACTER::GetTitlesAvailable() const' obj/input_main.o: In function `CInputMain::Analyze(DESC*, unsigned char, char const*)': /usr/src/SursaFIXURI/Server/game/src/input_main.cpp:3254: undefined reference to `CHARACTER::pChooseTitle(int)' obj/questlua_pc.o: In function `quest::pc_choosed_title(lua_State*)': /usr/src/SursaFIXURI/Server/game/src/questlua_pc.cpp:2864: undefined reference to `CHARACTER::ChoosedTitle()' obj/questlua_pc.o: In function `quest::pc_choose_title(lua_State*)': /usr/src/SursaFIXURI/Server/game/src/questlua_pc.cpp:2849: undefined reference to `CHARACTER::ChooseTitle(int)' obj/questlua_pc.o: In function `quest::pc_get_title(lua_State*)': /usr/src/SursaFIXURI/Server/game/src/questlua_pc.cpp:2825: undefined reference to `CHARACTER::GetTitle(int)' obj/questlua_pc.o: In function `quest::pc_set_title(lua_State*)': /usr/src/SursaFIXURI/Server/game/src/questlua_pc.cpp:2801: undefined reference to `CHARACTER::SetTitle(int, unsigned char)'

*Resursă folosită: http://just4metin.ro/sursa/title-system-t64289.html
*ServerFiles utilizat: Costum
Poză:
*Detalii suplimentare:O sa las aici tutorialul si acum am modificat
Imput_main.cpp (tutorial)
// 1) Search:
		case HEADER_CG_DRAGON_SOUL_REFINE:
			{
				TPacketCGDragonSoulRefine* p = reinterpret_cast <TPacketCGDragonSoulRefine*>((void*)c_pData);
				switch(p->bSubType)
				{
				case DS_SUB_HEADER_CLOSE:
					ch->DragonSoul_RefineWindow_Close();
					break;
				case DS_SUB_HEADER_DO_REFINE_GRADE:
					{
						DSManager::instance().DoRefineGrade(ch, p->ItemGrid);
					}
					break;
				case DS_SUB_HEADER_DO_REFINE_STEP:
					{
						DSManager::instance().DoRefineStep(ch, p->ItemGrid);
					}
					break;
				case DS_SUB_HEADER_DO_REFINE_STRENGTH:
					{
						DSManager::instance().DoRefineStrength(ch, p->ItemGrid);
					}
					break;
				}
			}
			break;
// 2) After this make a new line and paste:
#ifdef __TITLE_SYSTEM__
		case HEADER_CG_TITLE_CHOOSE:
			{
				TPacketGGTitleInfo* p = reinterpret_cast <TPacketGGTitleInfo*>((void*)c_pData);
				if (ch)
					ch->pChooseTitle(p->iTitle);
			}
			break;
#endif

Imput_main.cpp cum am facut
HEADER_CG_DRAGON_SOUL_REFINE:
{
TPacketCGDragonSoulRefine* p = reinterpret_cast <TPacketCGDragonSoulRefine*>((void*)c_pData);
switch(p->bSubType)
{
case DS_SUB_HEADER_CLOSE:
ch->DragonSoul_RefineWindow_Close();
break;
case DS_SUB_HEADER_DO_REFINE_GRADE:
{
DSManager::instance().DoRefineGrade(ch, p->ItemGrid);
}
break;
case DS_SUB_HEADER_DO_REFINE_STEP:
{
DSManager::instance().DoRefineStep(ch, p->ItemGrid);
}
break;
case DS_SUB_HEADER_DO_REFINE_STRENGTH:
{
DSManager::instance().DoRefineStrength(ch, p->ItemGrid);
}
break;
}
}

break;
#ifdef __TITLE_SYSTEM__
case HEADER_CG_TITLE_CHOOSE:
{
TPacketGGTitleInfo* p = reinterpret_cast <TPacketGGTitleInfo*>((void*)c_pData);
if (ch)
ch->pChooseTitle(p->iTitle);
}
break;
#endif
}
return (iExtraLen);
}[/python]
questlua_pc.cpp (tutorial)
// 1) Search: void RegisterPCFunctionTable()
// 2) Before this make a new line and paste:
#ifdef __TITLE_SYSTEM__
	int pc_set_title(lua_State * L)
	{
		bool _to_return = false;
		if (!lua_isnumber(L, 1) || !lua_isnumber(L, 2))
		{
			sys_err("Invalid argument.");
			lua_pushboolean(L, _to_return);
			return 1;
		}
		
		CQuestManager& q = CQuestManager::instance();
		LPCHARACTER ch = q.GetCurrentCharacterPtr();
		if (!ch)
		{
			lua_pushboolean(L, _to_return);
			return 1;
		}
		
		_to_return = true;
		int iTitle = (int)lua_tonumber(L, 1);
		BYTE bValue = (BYTE)lua_tonumber(L, 2);
		ch->SetTitle(iTitle, bValue);
		lua_pushboolean(L, _to_return);
		return 1;
	}
	
	int pc_get_title(lua_State * L)
	{
		bool _to_return = false;
		if (!lua_isnumber(L, 1))
		{
			sys_err("Invalid argument.");
			lua_pushboolean(L, _to_return);
			return 1;
		}
		
		CQuestManager& q = CQuestManager::instance();
		LPCHARACTER ch = q.GetCurrentCharacterPtr();
		if (!ch)
		{
			lua_pushboolean(L, _to_return);
			return 1;
		}
		
		int iTitle = (int)lua_tonumber(L, 1);
		_to_return = ch->GetTitle(iTitle);
		lua_pushboolean(L, _to_return);
		return 1;
	}
	
	int pc_choose_title(lua_State * L)
	{
		bool _to_return = false;
		if (!lua_isnumber(L, 1))
		{
			sys_err("Invalid argument.");
			lua_pushboolean(L, _to_return);
			return 1;
		}
		
		CQuestManager& q = CQuestManager::instance();
		LPCHARACTER ch = q.GetCurrentCharacterPtr();
		if (!ch)
		{
			lua_pushboolean(L, _to_return);
			return 1;
		}
		
		int iTitle = (int)lua_tonumber(L, 1);
		_to_return = ch->ChooseTitle(iTitle);
		lua_pushboolean(L, _to_return);
		return 1;
	}
	
	int pc_choosed_title(lua_State * L)
	{
		CQuestManager& q = CQuestManager::instance();
		LPCHARACTER ch = q.GetCurrentCharacterPtr();
		if (!ch)
		{
			lua_pushnumber(L, 0);
			return 1;
		}
		
		int _to_return = ch->ChoosedTitle();
		lua_pushnumber(L, _to_return);
		return 1;
	}
#endif


// 1) Search: {NULL, NULL}
// 2) Before this make a new line and paste:
#ifdef __TITLE_SYSTEM__
			{"set_title", pc_set_title},			// Use (return true or false >> player will learn/unlearn this title): pc.set_title(title number, 0 to unlearn or 1 to learn) >> in length.h check: enum ETitles.
			{"get_title", pc_get_title},			// Use (return true or false >> true in case player can have this title): pc.get_title(title number) >> in length.h check: enum ETitles.
			{"choose_title", pc_choose_title},		// Use (return true or false >> true in case player can want to set this title and can): pc.choose_title(title number) >> in length.h check: enum ETitles.
			{"choosed_title", pc_choosed_title},	// Use (return number of title choosed or 0): pc.choosed_title() >> in length.h check: enum ETitles.
#endif

questlua_pc.lua cum am facut

#ifdef __TITLE_SYSTEM__
	int pc_set_title(lua_State * L)
	{
		bool _to_return = false;
		if (!lua_isnumber(L, 1) || !lua_isnumber(L, 2))
		{
			sys_err("Invalid argument.");
			lua_pushboolean(L, _to_return);
			return 1;
		}

		CQuestManager& q = CQuestManager::instance();
		LPCHARACTER ch = q.GetCurrentCharacterPtr();
		if (!ch)
		{
			lua_pushboolean(L, _to_return);
			return 1;
		}

		_to_return = true;
		int iTitle = (int)lua_tonumber(L, 1);
		BYTE bValue = (BYTE)lua_tonumber(L, 2);
		ch->SetTitle(iTitle, bValue);
		lua_pushboolean(L, _to_return);
		return 1;
	}

	int pc_get_title(lua_State * L)
	{
		bool _to_return = false;
		if (!lua_isnumber(L, 1))
		{
			sys_err("Invalid argument.");
			lua_pushboolean(L, _to_return);
			return 1;
		}

		CQuestManager& q = CQuestManager::instance();
		LPCHARACTER ch = q.GetCurrentCharacterPtr();
		if (!ch)
		{
			lua_pushboolean(L, _to_return);
			return 1;
		}

		int iTitle = (int)lua_tonumber(L, 1);
		_to_return = ch->GetTitle(iTitle);
		lua_pushboolean(L, _to_return);
		return 1;
	}

	int pc_choose_title(lua_State * L)
	{
		bool _to_return = false;
		if (!lua_isnumber(L, 1))
		{
			sys_err("Invalid argument.");
			lua_pushboolean(L, _to_return);
			return 1;
		}

		CQuestManager& q = CQuestManager::instance();
		LPCHARACTER ch = q.GetCurrentCharacterPtr();
		if (!ch)
		{
			lua_pushboolean(L, _to_return);
			return 1;
		}

		int iTitle = (int)lua_tonumber(L, 1);
		_to_return = ch->ChooseTitle(iTitle);
		lua_pushboolean(L, _to_return);
		return 1;
	}

	int pc_choosed_title(lua_State * L)
	{
		CQuestManager& q = CQuestManager::instance();
		LPCHARACTER ch = q.GetCurrentCharacterPtr();
		if (!ch)
		{
			lua_pushnumber(L, 0);
			return 1;
		}

		int _to_return = ch->ChoosedTitle();
		lua_pushnumber(L, _to_return);
		return 1;
	}
#endif

	void RegisterPCFunctionTable()
#ifdef __TITLE_SYSTEM__
			{ "set_title",	pc_set_title},			// Use (return true or false >> player will learn/unlearn this title): pc.set_title(title number, 0 to unlearn or 1 to learn) >> in length.h check: enum ETitles.
			{ "get_title",	pc_get_title},			// Use (return true or false >> true in case player can have this title): pc.get_title(title number) >> in length.h check: enum ETitles.
			{ "choose_title",	pc_choose_title	},	// Use (return true or false >> true in case player can want to set this title and can): pc.choose_title(title number) >> in length.h check: enum ETitles.
			{ "choosed_title",	pc_choosed_title},	// Use (return number of title choosed or 0): pc.choosed_title() >> in length.h check: enum ETitles.
#endif

			{ NULL,			NULL			}
Imagine
Afișează semnătura
Avatar utilizator
Epix
Utilizator interzis !

Utilizator interzis !
Mesaje: 109
Membru din: 03 Sep 2018, 20:52
Aprecieri: 117  
Mulţumiri: 10  
Medalii

vezi daca ai import char.h ca din cate stiu acolo sunt definite alea
Avatar utilizator
coadapute123
Utilizator interzis !

Utilizator interzis !
Mesaje: 536
Membru din: 05 Ian 2019, 14:04
Server: Heroes2
Regat: Jinno
Aprecieri: 103  
Mulţumiri: 362  
Discord: Copiază ID
Medalii

Epix scrie:vezi daca ai import char.h ca din cate stiu acolo sunt definite alea
am
Imagine
Afișează semnătura
Avatar utilizator
Titan
Metin Master

Metin Master
Mesaje: 2783
Membru din: 01 Iun 2015, 15:09
Server: In curand.
Regat: Chunjo
Aprecieri: 42  
Mulţumiri: 377  
  Rezolvări prob.: 3
Discord: Copiază ID
 Contact:
Medalii

Dar ai verificat dacă în char ai funcțiile alea?
Imagine
Afișează semnătura
Avatar utilizator
coadapute123
Utilizator interzis !

Utilizator interzis !
Mesaje: 536
Membru din: 05 Ian 2019, 14:04
Server: Heroes2
Regat: Jinno
Aprecieri: 103  
Mulţumiri: 362  
Discord: Copiază ID
Medalii

update , am rezolvat in game , acum in db am o problema :))
Imagine
Afișează semnătura
Avatar utilizator
coadapute123
Utilizator interzis !

Utilizator interzis !
Mesaje: 536
Membru din: 05 Ian 2019, 14:04
Server: Heroes2
Regat: Jinno
Aprecieri: 103  
Mulţumiri: 362  
Discord: Copiază ID
Medalii

Cer T/C
Imagine
Afișează semnătura
Închis
Răspunsuri
4
Vizualizări
516
Răspunsuri
5
Vizualizări
715
Răspunsuri
3
Vizualizări
934
Răspunsuri
10
Vizualizări
1399

Înapoi la “Arhivă Probleme şi Întrebări”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Google [Bot], Semrush [Bot] și 21 vizitatori