[Source Tut] Get Perin automatically

10/08/2011 10:08 Clype.'#16
Funktioniert das auf jedem Server?
10/08/2011 10:16 Jopsi332#17
Quote:
Originally Posted by Clype.' View Post
Funktioniert das auf jedem Server?
Ich würd sagen v15 und aufwärts
10/08/2011 10:17 Carlyle~#18
Quote:
and it is by 1,9 mrd, it s better than 500 million ;D;D
So change the parameter ?
10/08/2011 11:39 /-/µR€#19
If the Inventar is full, i get the perin in my postbox? and where i must add the code?

wenn das inventar voll ist, kommen die perins dann in den briefkasten? und wo muss ich den code adden?
10/08/2011 11:59 alfredico#20
Make a /makeperin command it's better than this. What if you want to buy anything from shops that cost more than 400m?
Also the way it's good, but you should try doing a perin system, same as monsterflyff did.
10/08/2011 12:04 Jopsi332#21
just change it to 1,9 mrd, nothing cost so much in shops ;D higher you trade with perin normally every time
10/08/2011 12:32 Flash!#22
Die Perins werden nur umgewandelt wenn man das Geld droppt,
nicht wenn man Perins damit umwandelt und dann Geld braucht oder tradet.
10/08/2011 13:07 Yakuzai.#23
Richtig. Deswegen ist der Code ja auch besser als der vom TE, da er das Geld nur in Perins umwandelt, wenn Geld aufgesammelt wird und eben nicht, wenn man einen Perin einsetzt. Und ja es gehört in die User.cpp.
10/08/2011 14:57 .iCom#24
Quote:
Originally Posted by Pumbaaa View Post
Code:
void CUser::AddGoldText( int nPlus )
{
	char szPlus[64];
	char szGold[64];

	sprintf( szPlus, "%d", nPlus );
	sprintf( szGold, "%d", GetGold() );

	CString strPlus = GetNumberFormatEx( szPlus );
	CString strGold = GetNumberFormatEx( szGold );

	if( GetGold() > 1900000000 &&  this->m_Inventory.GetEmptyCount() < 1 )
	{
		CItemElem pItem;
		pItem.m_nItemNum = 19;
		pItem.m_bCharged = TRUE;
		pItem.m_dwItemId = II_SYS_SYS_SCR_PERIN;
		BYTE nID;
		CreateItem( &pItem, &nID );
		AddGold( -1900000000 );
	}

	AddDefinedText( TID_GAME_REAPMONEY, "%s %s", strPlus, strGold );
}
EDIT besser wäre noch this->m_Inventory.GetEmptyCount() < 1 anstatt ::GetCount().
Kleine Frage, bei mir werden die Penya abgezogen, aber erhalte keine Perin.

Obwohl Platz ist.
10/08/2011 15:13 Yakuzai.#25
Hier eine komplett Bugfreie Version :
User.cpp :
Code:
void CUser::AddGoldText( int nPlus )
{
	char szPlus[64];
	char szGold[64];

	sprintf( szPlus, "%d", nPlus );
	sprintf( szGold, "%d", GetGold() );

	CString strPlus = GetNumberFormatEx( szPlus );
	CString strGold = GetNumberFormatEx( szGold );

	if( GetGold() > 2100000000 &&  this->m_Inventory.GetEmptyCount() == 0 && CMover::GetPerinNum() > 0 )
	{
		CItemElem pItem;
		pItem.m_nItemNum = CMover::GetPerinNum() + 21;
		pItem.m_bCharged = TRUE;
		pItem.m_dwItemId = II_SYS_SYS_SCR_PERIN;
		BYTE nID;
		CMover::RemovePerin( CMover::GetPerinNum() );
		CreateItem( &pItem, &nID );
		AddGold( -2100000000 );
		AddDefinedText( TID_GAME_MAKEPERIN );
	}
	else if (GetGold() > 2100000000 &&  this->m_Inventory.GetEmptyCount() > 0 && CMover::GetPerinNum() == 0)
	{
		CItemElem pItem;
		pItem.m_nItemNum = 21;
		pItem.m_bCharged = TRUE;
		pItem.m_dwItemId = II_SYS_SYS_SCR_PERIN;
		BYTE nID;
		CreateItem( &pItem, &nID );
		AddGold( -2100000000 );
		AddDefinedText( TID_GAME_MAKEPERIN );
	}
	else if (GetGold() > 2100000000 &&  this->m_Inventory.GetEmptyCount() > 0 && CMover::GetPerinNum() > 1)
	{
		CItemElem pItem;
		pItem.m_nItemNum = 21;
		pItem.m_bCharged = TRUE;
		pItem.m_dwItemId = II_SYS_SYS_SCR_PERIN;
		BYTE nID;
		CreateItem( &pItem, &nID );
		AddGold( -2100000000 );
		AddDefinedText( TID_GAME_MAKEPERIN );
	}
	else if (GetGold() > 2100000000 &&  this->m_Inventory.GetEmptyCount() == 0 && CMover::GetPerinNum() == 0)
	{
		AddDefinedText( TID_GAME_MAKEPERIN_FAILURE );
	}

	AddDefinedText( TID_GAME_REAPMONEY, "%s %s", strPlus, strGold );
}
defineText.h (Im Resource Ordner der Source / im Resource)
Code:
TID_GAME_MAKEPERIN	0xffbb00
{
	IDS_TEXTCLIENT_INC_100000
}
TID_GAME_MAKEPERIN_FAILURE	0xff0000
{
	IDS_TEXTCLIENT_INC_100001
}
textClient.inc (Im Resource)
Code:
TID_GAME_MAKEPERIN	0xffbb00
{
	IDS_TEXTCLIENT_INC_100000
}
TID_GAME_MAKEPERIN_FAILURE	0xff0000
{
	IDS_TEXTCLIENT_INC_100001
}
textClient.txt.txt (Im Resource)
Code:
IDS_TEXTCLIENT_INC_100000	Es wurden 21 Perins erstellt. Der Betrag wurde von deinen Penya abgezogen.
IDS_TEXTCLIENT_INC_100001	Es konnten keine Perins erstellt werden, bitte prüfe dein Inventar.
Perin Stacks werden beibehalten, es werden nur Perins erstellt / Penya abgezogen wenn Inventar Platz hat, oder ein Perin Stack vorhanden ist. Es wird eine (goldene xD) Nachricht ausgegeben, wenn die Perins erstellt wurden, oder eine (rote) ausgegeben, wenn kein Platz im Inventar ist.
10/08/2011 15:34 .iCom#26
Quote:
Originally Posted by Yakuzai. View Post
defineText.h (Im Resource Ordner der Source / im Resource)
Code:
TID_GAME_MAKEPERIN	0xffbb00
{
	IDS_TEXTCLIENT_INC_100000
}
TID_GAME_MAKEPERIN_FAILURE	0xff0000
{
	IDS_TEXTCLIENT_INC_100001
}
Also die defineText.h muss doch anders sein oder ?
wie z.B:

#define TID_GAME_MAKEPERIN 4702
#define TID_GAME_MAKEPERIN_FAILURE 4703
10/08/2011 15:36 ™Dryad#27
Yepp is richtig..
01/01/2012 18:15 Shuya83#28
Quote:
Originally Posted by Yakuzai. View Post
Hier eine komplett Bugfreie Version :
User.cpp :
Code:
void CUser::AddGoldText( int nPlus )
{
	char szPlus[64];
	char szGold[64];

	sprintf( szPlus, "%d", nPlus );
	sprintf( szGold, "%d", GetGold() );

	CString strPlus = GetNumberFormatEx( szPlus );
	CString strGold = GetNumberFormatEx( szGold );

	if( GetGold() > 2100000000 &&  this->m_Inventory.GetEmptyCount() == 0 && CMover::GetPerinNum() > 0 )
	{
		CItemElem pItem;
		pItem.m_nItemNum = CMover::GetPerinNum() + 21;
		pItem.m_bCharged = TRUE;
		pItem.m_dwItemId = II_SYS_SYS_SCR_PERIN;
		BYTE nID;
		CMover::RemovePerin( CMover::GetPerinNum() );
		CreateItem( &pItem, &nID );
		AddGold( -2100000000 );
		AddDefinedText( TID_GAME_MAKEPERIN );
	}
	else if (GetGold() > 2100000000 &&  this->m_Inventory.GetEmptyCount() > 0 && CMover::GetPerinNum() == 0)
	{
		CItemElem pItem;
		pItem.m_nItemNum = 21;
		pItem.m_bCharged = TRUE;
		pItem.m_dwItemId = II_SYS_SYS_SCR_PERIN;
		BYTE nID;
		CreateItem( &pItem, &nID );
		AddGold( -2100000000 );
		AddDefinedText( TID_GAME_MAKEPERIN );
	}
	else if (GetGold() > 2100000000 &&  this->m_Inventory.GetEmptyCount() > 0 && CMover::GetPerinNum() > 1)
	{
		CItemElem pItem;
		pItem.m_nItemNum = 21;
		pItem.m_bCharged = TRUE;
		pItem.m_dwItemId = II_SYS_SYS_SCR_PERIN;
		BYTE nID;
		CreateItem( &pItem, &nID );
		AddGold( -2100000000 );
		AddDefinedText( TID_GAME_MAKEPERIN );
	}
	else if (GetGold() > 2100000000 &&  this->m_Inventory.GetEmptyCount() == 0 && CMover::GetPerinNum() == 0)
	{
		AddDefinedText( TID_GAME_MAKEPERIN_FAILURE );
	}

	AddDefinedText( TID_GAME_REAPMONEY, "%s %s", strPlus, strGold );
}
defineText.h (Im Resource Ordner der Source / im Resource)
Code:
TID_GAME_MAKEPERIN	0xffbb00
{
	IDS_TEXTCLIENT_INC_100000
}
TID_GAME_MAKEPERIN_FAILURE	0xff0000
{
	IDS_TEXTCLIENT_INC_100001
}
textClient.inc (Im Resource)
Code:
TID_GAME_MAKEPERIN	0xffbb00
{
	IDS_TEXTCLIENT_INC_100000
}
TID_GAME_MAKEPERIN_FAILURE	0xff0000
{
	IDS_TEXTCLIENT_INC_100001
}
textClient.txt.txt (Im Resource)
Code:
IDS_TEXTCLIENT_INC_100000	Es wurden 21 Perins erstellt. Der Betrag wurde von deinen Penya abgezogen.
IDS_TEXTCLIENT_INC_100001	Es konnten keine Perins erstellt werden, bitte prüfe dein Inventar.
Perin Stacks werden beibehalten, es werden nur Perins erstellt / Penya abgezogen wenn Inventar Platz hat, oder ein Perin Stack vorhanden ist. Es wird eine (goldene xD) Nachricht ausgegeben, wenn die Perins erstellt wurden, oder eine (rote) ausgegeben, wenn kein Platz im Inventar ist.

Wo genau muss das in der User.cpp rein? habs ohne fehler eingefügt funktioniert aber nicht.
01/01/2012 18:16 マリブ#29
In User.cpp ist das ne komplett eigene Funktion die du nur ersetzen
musst..
01/01/2012 18:33 Shuya83#30
Ok hatte es in einer falschen datei drinne, hat geklappt muste nur was ersetzten.