|
You last visited: Today at 01:00
Advertisement
[Source Frage]Perin
Discussion on [Source Frage]Perin within the Flyff Private Server forum part of the Flyff category.
10/05/2011, 21:15
|
#1
|
elite*gold: 0
Join Date: Aug 2011
Posts: 206
Received Thanks: 117
|
[Source Frage]Perin
Hey, hier mal eine kleine Frage ^^
Wenn ich eine Funktion habe, die die Penya überwachen soll, und dann, falls die Penya 100.000.000 übersteigen, diese in einen Perin umwandeln soll, wo müsste ich diese Funktion dann wie einbauen,
bzw. wie müsste die Funktion aussehen, ich hab jetzt mal das hier gemacht :
Code:
void CMover::UpdatePerin()
{
if(((CUser*)this)->GetGold() > 100000000)
{
SetGold(((CUser*)this)->GetGold() - 100000000);
}
}
Habe von C++ nicht so viel Ahnung, also nich lachen wenns **** ist ^^
|
|
|
10/05/2011, 21:31
|
#2
|
elite*gold: 0
Join Date: May 2009
Posts: 122
Received Thanks: 160
|
... auf die schnelle würde ich das anders machen:
in der mover.cpp und der obj.h gibt es eine Funktion die AddGold heisst...
Darin würde ich einfach unter dem SetGold( nTotal ); folgendes einfügen:
Code:
if( GetGold() > PERIN_VALUE ) //wenn der User mehr Gold hat als ein Perin wert ist
{
ItemProp* pProp = prj.GetItemProp( II_SYS_SYS_SCR_PERIN ); // Eigenschaften des Perin in ne Pointervariable speichern
for( ; GetGold() - PERIN_VALUE > 0 ; ) // solange ausführen, bis das Gold nicht mehr reicht
{
SetGold( GetGold() - PERIN_VALUE ); // Gold abziehen
AddItem( pProp ); //Perin hinzufügen
nTotal -= PERIN_VALUE; //Fürs spätere senden des neuen Betrags Gold abziehen
}
}
|
|
|
10/05/2011, 21:32
|
#3
|
elite*gold: 2
Join Date: Jul 2009
Posts: 1,447
Received Thanks: 923
|
Naja, laut diesem Code würde jeder der mehr als 100m hat mal eben 100m wieder verlieren anstat einen Perin zu bekomen.
|
|
|
10/05/2011, 21:56
|
#4
|
elite*gold: 0
Join Date: Aug 2011
Posts: 206
Received Thanks: 117
|
Würde der nicht bei Krustenkäses Code auch die Penya abziehen, wenn ich einen Perin aktiviere ?
So wäre es ja dann wieder unmöglich über 100Mio Penya zu erhalten.
Weiß einer wie man das umgehen kann ?
|
|
|
10/05/2011, 21:59
|
#5
|
elite*gold: 59
Join Date: Aug 2009
Posts: 1,595
Received Thanks: 490
|
wieso machst das nich so das wenn im INv 2,1 Mrd Penya liegen automatisch Perins draus werden? Ich mein, dann koennte man weiter farmen.
|
|
|
10/05/2011, 22:04
|
#6
|
elite*gold: 0
Join Date: Aug 2011
Posts: 206
Received Thanks: 117
|
Hast recht ^^ Werde das jetzt mal eben probieren.
Edit geht nicht:
Code:
AddItem( pProp ); //Perin hinzufügen
Dazu sagt er das :
Code:
XXXX\Mover.cpp(632): error C2664: 'CMover::AddItem' : cannot convert parameter 1 from 'ItemProp *' to 'CItemBase *'
|
|
|
10/05/2011, 22:33
|
#7
|
elite*gold: 20
Join Date: Apr 2009
Posts: 804
Received Thanks: 829
|
Code:
CItemElem itemelem;
itemelem.m_nItemNum = 1;
itemelem.m_bCharged = TRUE;
BYTE nID;
itemelem.m_dwItemId = II_SYS_SYS_SCR_PERIN;
( ( CMover*)this)->CreateItem( &itemelem, &nID );
|
|
|
10/06/2011, 17:32
|
#8
|
elite*gold: 0
Join Date: Feb 2010
Posts: 151
Received Thanks: 42
|
Warum machst du es nicht so wenn er 2,1 mrd hat das es in Perins umgewandelt wird
Ist viel einfacher ^^
|
|
|
10/06/2011, 21:03
|
#9
|
elite*gold: 0
Join Date: Aug 2011
Posts: 206
Received Thanks: 117
|
Mit dem Code passiert einfach garnix >.<
Code:
if( GetGold() > 21000000000 )
{
ItemProp* pProp = prj.GetItemProp( II_SYS_SYS_SCR_PERIN );
for( ; GetGold() - PERIN_VALUE > 0 ; )
{
CItemElem itemelem;
itemelem.m_nItemNum = 1;
itemelem.m_bCharged = TRUE;
itemelem.m_dwItemId = II_SYS_SYS_SCR_PERIN;
AddItem( &itemelem );
SetGold( GetGold() - PERIN_VALUE );
nTotal -= PERIN_VALUE;
}
}
|
|
|
10/06/2011, 21:12
|
#10
|
elite*gold: 20
Join Date: Apr 2009
Posts: 804
Received Thanks: 829
|
Du sollst auch die CreateItem Funktion verwenden ;D
|
|
|
10/06/2011, 21:34
|
#11
|
elite*gold: 0
Join Date: Mar 2011
Posts: 276
Received Thanks: 16
|
Könntest du net einfach dazu mal nen Tut machen Pumbaaa du weist ja wies geht wen ich es richtig verstanden habe würde dir noch ein paar mehr THX einbringen
MFG Le´Professore
|
|
|
10/06/2011, 22:27
|
#12
|
elite*gold: 20
Join Date: Apr 2009
Posts: 804
Received Thanks: 829
|
Quote:
Originally Posted by Pumbaaa
Code:
CItemElem itemelem;
itemelem.m_nItemNum = 1;
itemelem.m_bCharged = TRUE;
BYTE nID;
itemelem.m_dwItemId = II_SYS_SYS_SCR_PERIN;
CreateItem( &itemelem, &nID );
|
Das ist alles, so erstellst du ein Item...
m_nItemNum ist die Anzahl.
|
|
|
10/07/2011, 15:16
|
#13
|
elite*gold: 0
Join Date: Aug 2011
Posts: 206
Received Thanks: 117
|
Quote:
Originally Posted by Pumbaaa
Du sollst auch die CreateItem Funktion verwenden ;D
|
Wozu gehört die denn ? Wenn ich einfach nur den Code benutze, den du mir gegeben hast, krieg ich den Error, dass die Funktion nicht zu CMover gehört oder so ähnlich :P
Edit was passiert, wenn das Inventar voll ist und der versucht das Item zu erstellen ?
|
|
|
10/07/2011, 15:53
|
#14
|
elite*gold: 0
Join Date: Sep 2011
Posts: 36
Received Thanks: 6
|
Replace your AddGold function with mine:
PHP Code:
BOOL CMover::AddGold( int nGold, BOOL bSend ) { if( nGold == 0 ) return TRUE;
int nTotal = GetGold() + nGold;
if( nGold > 0 ) { if( nTotal < 0 ) nTotal = INT_MAX; } else // nGold < 0 { if( nTotal < 0 ) { nTotal = 0; } } SetGold( nTotal );
#ifdef __WORLDSERVER int nTotal = GetGold() + nGold; if( GetGold() > PERIN_VALUE ) { CItemElem itemelem; itemelem.m_nItemNum = 1; itemelem.m_bCharged = TRUE; BYTE nID; itemelem.m_dwItemId = II_SYS_SYS_SCR_PERIN;
for( ; nTotal - PERIN_VALUE > 0 ; ) { nTotal -= PERIN_VALUE; ( ( CUser*)this)->CreateItem( &itemelem, &nID ); } SetGold( nTotal ); } #endif __WORLDSERVER
if( bSend ) { #ifdef __WORLDSERVER g_UserMng.AddSetPointParam( this, DST_GOLD, nTotal ); #endif // __WORLDSERVER }
return TRUE; }
|
|
|
10/07/2011, 16:18
|
#15
|
elite*gold: 0
Join Date: Mar 2011
Posts: 276
Received Thanks: 16
|
Quote:
Originally Posted by Carlyle~
Replace your AddGold function with mine:
PHP Code:
BOOL CMover::AddGold( int nGold, BOOL bSend )
{
if( nGold == 0 )
return TRUE;
int nTotal = GetGold() + nGold;
if( nGold > 0 )
{
if( nTotal < 0 )
nTotal = INT_MAX;
}
else // nGold < 0
{
if( nTotal < 0 )
{
nTotal = 0;
}
}
SetGold( nTotal );
#ifdef __WORLDSERVER
int nTotal = GetGold() + nGold;
if( GetGold() > PERIN_VALUE )
{
CItemElem itemelem;
itemelem.m_nItemNum = 1;
itemelem.m_bCharged = TRUE;
BYTE nID;
itemelem.m_dwItemId = II_SYS_SYS_SCR_PERIN;
for( ; nTotal - PERIN_VALUE > 0 ; )
{
nTotal -= PERIN_VALUE;
( ( CUser*)this)->CreateItem( &itemelem, &nID );
}
SetGold( nTotal );
}
#endif __WORLDSERVER
if( bSend )
{
#ifdef __WORLDSERVER
g_UserMng.AddSetPointParam( this, DST_GOLD, nTotal );
#endif // __WORLDSERVER
}
return TRUE;
}
|
Does it work?
Le´Professore
|
|
|
 |
|
Similar Threads
|
frage zu perin verkauf [eclipse flyff]
08/12/2011 - Flyff Private Server - 4 Replies
Hi Leute
ich wollte ma fragen ob es erlaubt ist Perin (auf dem pserver eclipe flyff) gegen paysafecards zu verkaufen
|
Source Frage
07/24/2011 - Flyff Private Server - 30 Replies
Ist es möglich Ultra Amplis auf V15 zu adden? (:
Ich weiß, das es Source arbeit ist, nur vielleicht könnte mir ja jemand sagen was man dort alles in der Source einstellen muss. ^^
|
[Source-Frage] Spec_item.txt im Source adden?
07/20/2011 - Flyff Private Server - 18 Replies
Heyho Leute,
kurze Frage,
wie kann ich die Spec_item.txt im Source eintragen?
Ich würd gern meine Files auf V17 Dflyff stand aufbauen und mit v16 kam ja schon die Spec_item.txt anstatt der propitem.txt
Und einige neue sachen wie sZComment oder so.
Wäre echt nett wenn wer helfen könnte.
|
Tausche [Buru] Perin gegen [Augu] Perin
02/27/2011 - Flyff Trading - 1 Replies
wie schon im topic steht suche perin auf dem server augu und biete perin auf buru
|
68 Perin Steamwalker (1.5 Perin = 1€)
01/29/2011 - Flyff Trading - 0 Replies
Hallo,
ich verkaufe genau 68 Perin's auf dem Server Steamwalker. ( dFlyff )
Es schaut folgendermaßen aus: 1.5 <-> 1 ( 150 mio für 1 € )
Ich verkaufe nur in folgenden Schritten:
15 Perin = 10 €
|
All times are GMT +1. The time now is 01:01.
|
|