|
You last visited: Today at 08:03
Advertisement
Weapon level command
Discussion on Weapon level command within the Flyff PServer Guides & Releases forum part of the Flyff Private Server category.
08/06/2016, 00:08
|
#1
|
elite*gold: 0
Join Date: Aug 2010
Posts: 98
Received Thanks: 76
|
Weapon level command
hello
this command work with __WEAPON_LEVEL system
Code:
#ifdef __WEAPON_LEVELING
BOOL TextCmd_SetWeaponLevel( CScanner& scanner )
{
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)scanner.dwValue;
if( IsValidObj( pUser ) )
{
CItemElem* pItemElem = pUser->m_Inventory.GetAt(0);
if( pItemElem )
{
ItemProp* pProp = pItemElem->GetProp();
int nLevel = scanner.GetNumber();
int nExp = 0;
if( pProp )
{
if( pProp->dwItemKind == IK1_WEAPON || pProp->dwItemKind3 == IK3_SHIELD )
{
if( nLevel < 1)
nLevel = 1;
if( nLevel > 100 )
nLevel = 100;
if( pUser->IsMode( TRANSPARENT_MODE ) == 0 )
{
g_UserMng.AddCreateSfxObj( pUser, XI_INT_SUCCESS, pUser->GetPos().x, pUser->GetPos().y, pUser->GetPos().z );
pUser->AddPlaySound( SND_INF_UPGRADESUCCESS );
}
pUser->UpdateItem( (BYTE)pItemElem->m_dwObjId, UI_WEAPON_LEVEL, nLevel );
pUser->UpdateItem( (BYTE)pItemElem->m_dwObjId, UI_WEAPON_EXP, nExp );
}
}
}
}
#endif // __WORLDSERVER
return TRUE;
}
#endif // __WEAPON_LEVELING
put an item in 1st inventory slot and use command like /WeaponLevel 100 to put your weapon level to 100
credit : me
|
|
|
08/06/2016, 01:38
|
#2
|
elite*gold: 0
Join Date: Apr 2010
Posts: 82
Received Thanks: 27
|
Possible crash :
CItemElem* pItemElem = pUser->m_Inventory.GetAt(0);
ItemProp* pProp = pItemElem->GetProp();
pItemElem n'est pas vérifier avant de l'appeler dans pItemElem->GetProp();
if( nLevel > 100 )
nLevel = 100;
Que se passe-t-il si une valeur négative est passer ?
Pareil pUser n'est pas vérifier dans if( pUser->IsMode( TRANSPARENT_MODE ) == 0 )
|
|
|
08/06/2016, 02:19
|
#3
|
elite*gold: 28
Join Date: Feb 2010
Posts: 463
Received Thanks: 277
|
J'adore les noobs
Quote:
#ifdef __WEAPON_LEVELING
BOOL TextCmd_SetWeaponLevel( CScanner& scanner )
{
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)scanner.dwValue;
if( !IsValidObj( pUser ) )
return FALSE;
CItemElem* pItemElem = pUser->m_Inventory.GetAt(0);
if( !pItemElem )
return FALSE;
ItemProp* pProp = pItemElem->GetProp();
if( !pProp )
return FALSE;
int nLevel = scanner.GetNumber();
int nExp = 0;
if( pItemElem )
{
if( pProp->dwItemKind3 == IK3_SWD
|| pProp->dwItemKind3 == IK3_AXE
|| pProp->dwItemKind3 == IK3_KNUCKLEHAMMER
|| pProp->dwItemKind3 == IK3_CHEERSTICK
|| pProp->dwItemKind3 == IK3_WAND
|| pProp->dwItemKind3 == IK3_STAFF
|| pProp->dwItemKind3 == IK3_BOW
|| pProp->dwItemKind3 == IK3_YOYO
|| pProp->dwItemKind3 == IK3_SHIELD )
{
if( nLevel < 1 )
nLevel = 1;
if( nLevel > 100 )
nLevel = 100;
if( pUser && pUser->IsMode( TRANSPARENT_MODE ) == 0 )
{
g_UserMng.AddCreateSfxObj( pUser, XI_INT_SUCCESS, pUser->GetPos().x, pUser->GetPos().y, pUser->GetPos().z );
pUser->AddPlaySound( SND_INF_UPGRADESUCCESS );
}
pUser->UpdateItem( (BYTE)pItemElem->m_dwObjId, UI_WEAPON_LEVEL, nLevel );
pUser->UpdateItem( (BYTE)pItemElem->m_dwObjId, UI_WEAPON_EXP, nExp );
}
else
pUser->AddDefinedText( TID_REALLY_NIGGA );
}
#endif // __WORLDSERVER
return TRUE;
}
#endif // __WEAPON_LEVELING
|
|
|
|
08/06/2016, 02:40
|
#4
|
elite*gold: 0
Join Date: Aug 2010
Posts: 98
Received Thanks: 76
|
Quote:
Originally Posted by Meutledaron
Possible crash :
CItemElem* pItemElem = pUser->m_Inventory.GetAt(0);
ItemProp* pProp = pItemElem->GetProp();
pItemElem n'est pas vérifier avant de l'appeler dans pItemElem->GetProp();
if( nLevel > 100 )
nLevel = 100;
Que se passe-t-il si une valeur négative est passer ?
Pareil pUser n'est pas vérifier dans if( pUser->IsMode( TRANSPARENT_MODE ) == 0 )
|
C'est une commande que j'ai fait en vitesse c'est vrai que je ne l'ai pas faite correctement merci de ta remarque je vais la corriger
|
|
|
08/06/2016, 15:47
|
#5
|
elite*gold: 28
Join Date: Feb 2010
Posts: 463
Received Thanks: 277
|
Toujours pas bon...
|
|
|
08/06/2016, 20:11
|
#6
|
elite*gold: 0
Join Date: Aug 2010
Posts: 98
Received Thanks: 76
|
Ma commande est tout à fait bonne
pProp vérifié
pItem vérifié
pUser vérifié
|
|
|
08/06/2016, 21:35
|
#7
|
elite*gold: 0
Join Date: Apr 2010
Posts: 82
Received Thanks: 27
|
Tu fais appel à
CItemElem* pItemElem = pUser->m_Inventory.GetAt(0); sans l'avoir vérifier.
Ensuite à
ItemProp* pProp = pItemElem->GetProp(); pareil sans vérification, il faut y aller étape par étape.
CUser* pUser = (CUser*)scanner.dwValue;
On vérifier pUser avant d'aller plus loin.
CItemElem* pItemElem = pUser->m_Inventory.GetAt(0);
On vérifie pItemElem avant d'aller plus loin.
Les vérifications dans ton script arrivent trop tard et si l'objet n'est pas bon c'est le crash du worldserver.
Ps : Il manque également la seconde partie de la commande ou tu attribue les droits.
|
|
|
08/06/2016, 21:44
|
#8
|
elite*gold: 0
Join Date: Aug 2010
Posts: 98
Received Thanks: 76
|
Code:
#ifdef __WEAPON_LEVELING
ON_TEXTCMDFUNC( TextCmd_SetWeaponLevel, "SetWeaponLevel", "setweaponlevel", "swl", "SWL", TCM_BOTH, AUTH_GAMEMASTER3, "" )
#endif // __WEAPON_LEVELING
Je pensais qu'il n'était pas nécessaire de le poster car facile à refaire ^^
|
|
|
08/07/2016, 01:01
|
#9
|
elite*gold: 28
Join Date: Feb 2010
Posts: 463
Received Thanks: 277
|
Toujours pas bon...
Tu doit vérifier ton puser avant, car ici tu l'appel :
CItemElem* pItemElem = pUser->m_Inventory.GetAt(0);
Idem tu doit vérifier ton pItemElem avant, car ici tu l'appel :
ItemProp* pProp = pItemElem->GetProp();
|
|
|
12/06/2016, 10:50
|
#10
|
elite*gold: 0
Join Date: Apr 2016
Posts: 59
Received Thanks: 5
|
Did you fix the script? I look forward to it
|
|
|
12/06/2016, 12:53
|
#11
|
elite*gold: 0
Join Date: Apr 2010
Posts: 82
Received Thanks: 27
|
The script is good now.
|
|
|
12/06/2016, 13:42
|
#12
|
elite*gold: 0
Join Date: Apr 2016
Posts: 59
Received Thanks: 5
|
Which post contains the complete final script? Is it the original post?
|
|
|
12/06/2016, 19:42
|
#13
|
elite*gold: 0
Join Date: Apr 2010
Posts: 82
Received Thanks: 27
|
Quote:
Originally Posted by direktbottle
Is it the original post
|
|
|
|
 |
Similar Threads
|
change command LEVEL
06/12/2015 - Metin2 Private Server - 3 Replies
hi I have a game2089 to change the command /LEVEL ?
Where exactly is the game
|
Weapon accessorie 5525 command
07/02/2012 - CO2 Private Server - 8 Replies
hey, does anyone knows how to spawn a weapon accessorie (like a FishPole, LightSaber etc) with an command (like @item ...........)
i hope someone knows about it, just couldn't find it in the source....
kind regards,
Lars
|
/level command problem
07/14/2011 - Flyff Private Server - 2 Replies
Hallo,
ich weiß so langsam nicht mehr wo ich nach dem Fehler suchen soll.
Und zwar wenn ich Ingame bin und /level or /lv eingebe crasht der WorldServer.
Was ich vllt auch noch sagen sollte, ich Compile meine exen selber. Ich dachte zuerst es liegt an der Source, aber das ist auch nicht der fall, dann habe ich die Source ausgetauscht(Cleane Source), doch daran lag es auch nicht. Als nächstes habe ich dann noch die DB, Files und den Clienten getauscht und ab da an wusste ich auch nicht mehr...
|
GM Command Level
05/19/2008 - WoW Private Server - 3 Replies
Also ich wollte die Tage einie Commands für Spieler freigeben aber weiss
ned wo die Berechtigungen dazu gespeichert werden.
ich benutze Ascent 3.8-TRUNK r3850
wär also nett wenn mir jemand helfen könnte.
|
All times are GMT +1. The time now is 08:03.
|
|