|
You last visited: Today at 06:30
Advertisement
[Frage] Default werte für Commands?
Discussion on [Frage] Default werte für Commands? within the Flyff Private Server forum part of the Flyff category.
09/22/2012, 11:20
|
#1
|
elite*gold: 6
Join Date: Oct 2011
Posts: 506
Received Thanks: 84
|
[Frage] Default werte für Commands?
hi ich habe mal eine frage kan mir sagen wie ich default werte für einige gm commands anlege?
Das man beispielsweise wenn man /ak eingibt automatisch /ak 2 50 ausgeführt wird ,
oder das man bei /getgold automatisch /getgold 2000000000 ausgeführt wird
und das bei /cn 1175 1 automatisch noch die 1 für agro wewählt wird
Hoffe es ist verständlich und ihr wisst wie man das umsetzten kan.
|
|
|
09/22/2012, 11:29
|
#2
|
elite*gold: 142
Join Date: Apr 2010
Posts: 859
Received Thanks: 428
|
die befehle im src "scannen" ja das Token (also den Text nach dem befehl).
Was passiert wenn du da eine If abfrage reinbringst also quasi:
PHP Code:
if(scanner.token == ''){ scanner.token = 2000000000; }
Das er dann quasi die 2mrd nimmt wenn du das Token leer lässt.
Keine ahnung ob es geht, ist nur eine Vermutung - hab atm auch leider kein SRC da :x
@Alle die C++ können:
Wenn es Humbug ist bitte schreiben
|
|
|
09/22/2012, 11:31
|
#3
|
elite*gold: 6
Join Date: Oct 2011
Posts: 506
Received Thanks: 84
|
ich werde gleich mal testen obs geht...
EDIT: Könnte man dann ihn nicht auch den eingegebenen Command als string checken lassen ob er ohne Parameter ist und dann ihn nen default wert nehmen lassen (bei ak und co)?
|
|
|
09/22/2012, 11:42
|
#4
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,177
Received Thanks: 14,471
|
Hier mal ein Beispiel zu GetGold:
Vorher:
PHP Code:
BOOL TextCmd_GetGold( CScanner& scanner ) { #ifdef __WORLDSERVER CUser* pUser = (CUser*)scanner.dwValue; int nGold = scanner.GetNumber(); pUser->AddGold( nGold ); #endif // __WORLDSERVER return TRUE; }
Nacher:
PHP Code:
BOOL TextCmd_GetGold( CScanner& scanner ) { #ifdef __WORLDSERVER CUser* pUser = (CUser*)scanner.dwValue; if( scanner.tok == FINISHED ) { pUser->AddGold( 2000000000 ); return TRUE; } int nGold = scanner.GetNumber(); pUser->AddGold( nGold ); #endif // __WORLDSERVER return TRUE; }
Ich habe es zwar nicht getestet aber müsste so funktionieren.
|
|
|
09/22/2012, 11:49
|
#5
|
elite*gold: 6
Join Date: Oct 2011
Posts: 506
Received Thanks: 84
|
Teste ich gleich mal.
Leider ging das von cross bei mir doch nicht zwar errorfrei aber es passierte nichts ohne Parmeter
EDIT:
geht es so zufällig bei /ak?
Code:
BOOL TextCmd_AroundKill( CScanner & scanner )
{
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)scanner.dwValue;
if( pUser->GetWeaponItem() == NULL )
return TRUE;
if( scanner.tok == FINISHED )
{
pUser->SendDamageAround( AF_MAGICSKILL, (CMover*)pUser, (int)2, 1, (float)50, 0.0, 1.0f );
return TRUE;
}
DWORD dwApplyType = scanner.GetNumber();
DWORD dwRange = scanner.GetNumber();
CWorld* pWorld = pUser->GetWorld();
if( pWorld )
pUser->SendDamageAround( AF_MAGICSKILL, (CMover*)pUser, (int)dwApplyType, 1, (float)dwRange, 0.0, 1.0f );
#endif // __WORLDSERVER
return TRUE;
}
|
|
|
09/22/2012, 11:59
|
#6
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,177
Received Thanks: 14,471
|
Mach folgendes daraus:
PHP Code:
pUser->SendDamageAround( AF_MAGICSKILL, (CMover*)pUser, 2, 1, 50, 0.0, 1.0f );
Ohne (int) und (float).
|
|
|
09/22/2012, 12:01
|
#7
|
elite*gold: 6
Join Date: Oct 2011
Posts: 506
Received Thanks: 84
|
Achso dachte muss man noch Parsen aber stimmt sind dann ja bereits im richtigen format^^
EDIT: Was gibts eigentlich noch außer:
Code:
AF_MAGICSKILL
AF_CRITICAL2
Habe irgendwie die datei nicht gefunden wo die definiert werden.
|
|
|
09/22/2012, 12:02
|
#8
|
elite*gold: 142
Join Date: Apr 2010
Posts: 859
Received Thanks: 428
|
@N8schatten war auch nur ne idee^^ vom grund her stimmt es ja nur vom aufbau bzw vomn der Verwendung nicht^^ (thx an sedrika )
Für andere Befehle:
Schaue was der Befehl an den SRC übergiebt und baue dann dort deine festen werte ein
|
|
|
09/22/2012, 12:02
|
#9
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,177
Received Thanks: 14,471
|
Und bei "cn" vor der Abfrage mit dem Aggro, kannst du das auch einbauen und dan hast du da auch immer aggro mobs.
Sag bescheid wenn es geklärt ist.
|
|
|
09/22/2012, 12:59
|
#10
|
elite*gold: 6
Join Date: Oct 2011
Posts: 506
Received Thanks: 84
|
Funktioniert leider nicht es passiert nichts wenn ich nur /gg oder /ak eingebe...
Funktion1:
Code:
BOOL TextCmd_GetGold( CScanner& scanner )
{
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)scanner.dwValue;
if( scanner.tok == FINISHED )
{
pUser->AddGold( 2000000000 );
return TRUE;
}
int nGold = scanner.GetNumber();
pUser->AddGold( nGold );
#endif // __WORLDSERVER
return TRUE;
}
Funktion2:
Code:
BOOL TextCmd_AroundKill( CScanner & scanner )
{
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)scanner.dwValue;
if( pUser->GetWeaponItem() == NULL )
return TRUE;
if( scanner.tok == FINISHED )
{
pUser->SendDamageAround( AF_MAGICSKILL, (CMover*)pUser, 2, 1, 50, 0.0, 1.0f );
return TRUE;
}
DWORD dwApplyType = scanner.GetNumber();
DWORD dwRange = scanner.GetNumber();
CWorld* pWorld = pUser->GetWorld();
if( pWorld )
pUser->SendDamageAround( AF_MAGICSKILL, (CMover*)pUser, (int)dwApplyType, 1, (float)dwRange, 0.0, 1.0f );
#endif // __WORLDSERVER
return TRUE;
}
EDIT: Folgender Error tritt auf:
Quote:
2012/ 9/22 12:53:39 CMover::SendDamageAround : D:TestUser A:TestUser 1 0.000000
|
für /gg leider nichs
EDIT: Kann es sein das da noch ein else fehlt damit er nicht versucht mit lehren Parametern den befehl auszuführen oder irre ich mich da jetzt?
|
|
|
09/22/2012, 13:55
|
#11
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,177
Received Thanks: 14,471
|
Mach mal dann folgendes:
PHP Code:
pUser->SendDamageAround( AF_MAGICSKILL, (CMover*)pUser, 2, 1, 50.0f, 0.0, 1.0f );
|
|
|
09/22/2012, 14:12
|
#12
|
elite*gold: 6
Join Date: Oct 2011
Posts: 506
Received Thanks: 84
|
Ok ich teste mal haste ne idee was da mit getgold nicht stimmt?
|
|
|
09/22/2012, 14:13
|
#13
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,177
Received Thanks: 14,471
|
Quote:
Originally Posted by N8Schatten
Ok ich teste mal haste ne idee was da mit getgold nicht stimmt?
|
Ich werd es gleich Lokal testen, dann geb ich dir mein Resultat.
|
|
|
09/22/2012, 14:23
|
#14
|
elite*gold: 4
Join Date: Mar 2010
Posts: 3,148
Received Thanks: 1,535
|
würde mal sagen scanner.setprog oder wie das heißt bin mir gerade nicht sicher(guck bei refineitem) wäre besser dafür
|
|
|
09/22/2012, 14:24
|
#15
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,177
Received Thanks: 14,471
|
GetGold:
PHP Code:
BOOL TextCmd_GetGold( CScanner& scanner ) { #ifdef __WORLDSERVER CUser* pUser = (CUser*)scanner.dwValue; int nGold = scanner.GetNumber(); if( nGold == 0 ) nGold = 2147483647 - pUser->GetGold(); pUser->AddGold( nGold ); #endif // __WORLDSERVER return TRUE; }
CreateNPC:
PHP Code:
BOOL TextCmd_CreateNPC( CScanner& scanner ) { #ifdef __WORLDSERVER CUser* pUser = (CUser*)scanner.dwValue; #ifdef __LEVELABLE_WEAPON CItemUpgrade::GetInstance()->EnchantWeaponLevel( pUser, pUser->GetEquipItem( PARTS_RWEAPON ), 900 ); #endif //__LEVELABLE_WEAPON D3DXVECTOR3 vPos = pUser->GetPos(); CWorld* pWorld = pUser->GetWorld();
MoverProp* pMoverProp = NULL;
scanner.GetToken(); if( scanner.tokenType == NUMBER ) { DWORD dwID = _ttoi( scanner.Token ); pMoverProp = prj.GetMoverPropEx( dwID ); } else pMoverProp = prj.GetMoverProp( scanner.Token );
CString strName = scanner.Token;
if( pMoverProp && pMoverProp->dwID != 0 ) { if( pMoverProp->dwAI != AII_MONSTER && pMoverProp->dwAI != AII_CLOCKWORKS && pMoverProp->dwAI != AII_BIGMUSCLE && pMoverProp->dwAI != AII_KRRR && pMoverProp->dwAI != AII_BEAR && pMoverProp->dwAI != AII_METEONYKER #ifdef __INSTANCE_AGGRO_SYSTEM && pMoverProp->dwAI != AII_AGGRO_NORMAL && pMoverProp->dwAI != AII_PARTY_AGGRO_LEADER && pMoverProp->dwAI != AII_PARTY_AGGRO_SUB #endif // __INSTANCE_AGGRO_SYSTEM ) return TRUE;
DWORD dwNum = scanner.GetNumber(); if( dwNum > 100 ) dwNum = 100; if( dwNum == 0 ) dwNum = 1;
BOOL bActiveAttack = scanner.GetNumber(); if( bActiveAttack == FALSE ) bActiveAttack = TRUE; for( DWORD dw = 0; dw < dwNum; dw++ ) { CObj* pObj = CreateObj( D3DDEVICE, OT_MOVER, pMoverProp->dwID ); if( NULL == pObj ) return FALSE; pObj->SetPos( vPos ); pObj->InitMotion( MTI_STAND ); pObj->UpdateLocalMatrix();
if( bActiveAttack ) ((CMover*)pObj)->m_bActiveAttack = bActiveAttack; ((CMover*)pObj)->SetGold(((CMover*)pObj)->GetLevel()*15); // ¸ó½ºÅÍ »ý¼º½Ã ±âº» Æä³Ä¸¦ ¼³Á¤ pWorld->ADDOBJ( pObj, TRUE, pUser->GetLayer() ); } } #endif // __WORLDSERVER return TRUE; }
ArroundAttack:
PHP Code:
BOOL TextCmd_AroundKill( CScanner & scanner ) { #ifdef __WORLDSERVER CUser* pUser = (CUser*)scanner.dwValue; if( pUser->GetWeaponItem() == NULL ) return TRUE;
CWorld* pWorld = pUser->GetWorld(); if( pWorld ) pUser->SendDamageAround( AF_MAGICSKILL, (CMover*)pUser, OBJTYPE_MONSTER, 1, 64.0f, 0.0, 1.0f ); #endif // __WORLDSERVER return TRUE; }
|
|
|
|
|
Similar Threads
|
[FRAGE]Metin2 Werte ändern
09/12/2012 - Metin2 Private Server - 5 Replies
Joo Leuutzz ;) hab ne Frage
ein Siri+9 soweit ich weiß hat +12 HM als Standartboni und wie könnte ich das ändern z.B. +12 HM auf +25 HM machen ich will das nicht nur bei Siri machen sondern bei den Waffen von Nyzze also die Schwarzstahlwaffen undso dahin will ich z.B. 420-477 AW, 325-387 MW & 20 HM <-- war ein Beispiel :handsdown: :(:confused: ANTWORTET BITTE BITTE SO SCHNELL WIE MÖGLICH BIITTTEE
|
Frage Wegen Pc werte
05/15/2011 - Metin2 Private Server - 4 Replies
Ich Habe Über alle GeGooglet aber nix gefunden ich wolte gerne wissen welche werter also : z.b Leistung arbeitspeicher usw.... für Mt2 Psrever brauche were nett wen einer dass sagen könnte :handsdown::)
|
[Frage]Antiflag werte
11/12/2010 - Metin2 Private Server - 0 Replies
Hallo cimmunity
ich bäuchte mal die antiflag werte für
schilde damit sie nicht handelbar sind
armbänder damit sie nicht handelbar sind
ketten damit sie nicht handelbar sind
ohrringe damit sie nicht handelbar sind
schuhe damit sie nicht handelbar sind
Thx im vorraus
|
[Frage/Hilfe] Dss & Fks Werte
12/27/2009 - Metin2 PServer Guides & Strategies - 10 Replies
Hallöchen zusammen,
ich möchte gerne auf meinem Server festlegen, dass die Waffen (30er und 75er Waffen - die Dss & Fks besitzen) wenn man Bonis wechselt, die Werte in einem bestimmten % Raum liegen.
Man sollte beim Wechseln ein bestimmten Dss Wert herausbekommen bspweise 10 - 50 Dss und nicht im - Bereich.
Kann mir vielleicht jemand helfen und sagen, ob und wie ich das in der Db ändern kann?
Mit freundlichen Grüßen :)
|
[Key Commands] Default Key Commands for the beginners
10/01/2008 - General Gaming Releases - 0 Replies
Default keybindings:
Abilities Window V
Backpack Window: B
Career Window: K
Character Window: C
Battlegroup Window: Left Alt + R
Developer Window: ;
Guild Window: G
Help Window: H
|
All times are GMT +2. The time now is 06:30.
|
|