|
You last visited: Today at 03:30
Advertisement
[TuT Source] Shop Items einzeln hinzufügen
Discussion on [TuT Source] Shop Items einzeln hinzufügen within the Flyff PServer Guides & Releases forum part of the Flyff Private Server category.
03/07/2011, 22:03
|
#1
|
elite*gold: 0
Join Date: Oct 2008
Posts: 680
Received Thanks: 337
|
[TuT Source] Shop Items einzeln hinzufügen
Was ist das?
Kennt ihr das lästige hinzufügen von Items durch AddVendorShop? Es nervt, dass es keine Funktion dafür gibt einzelne Items hinzufügen zu können. Deswegen stelle ich euch hier meine Mod zur Verfügung und ein kleines How To wie ihr sie einfach in euren Source hinzufügen könnt.
Nach dem einfügen könnt ihr einfach in der character.inc die Funktion AddShopItem benutzen.
Beispiel: AddShopItem( 0, II_WEA_WOODEN );
Das würde ein Wooden Sword im Tab 0 hinzufügen
1. Datei Project.cpp

Ihr sucht nach
PHP Code:
else if( script.Token == "AddTeleport" )
und nach der Zeile
PHP Code:
#endif // __TELEPORTER
(am Ende der Funktion) fügt ihr das ein
PHP Code:
#ifdef __ADDSHOPITEM else if( script.Token == "AddShopItem" ) { script.GetToken(); // ( int nSlot = script.GetNumber(); script.GetToken(); // DWORD dwId = script.GetNumber(); script.GetToken(); //
LPVENDOR_ITEM pVendorItem = new VENDOR_ITEM; pVendorItem->m_dwItemId = dwId; lpCharacter->m_venderItemAry3[ nSlot ].Add( pVendorItem ); } #endif
2. Datei Project.cpp

Danach sucht ihr nach
PHP Code:
CProject::~CProject()
und nach der Zeile
PHP Code:
#endif //__CSC_VER11_3
fügt ihr das ein
PHP Code:
#ifdef __ADDSHOPITEM for( j = 0; j < MAX_VENDOR_INVENTORY_TAB; j++ ) { for( i = 0; i < lpCharacter->m_venderItemAry3[ j ].GetSize(); i++) safe_delete( (LPVENDOR_ITEM)lpCharacter->m_venderItemAry3[ j ].GetAt(i) ); } #endif
3. Datei Mover.cpp
Dann sucht ihr nach
PHP Code:
void CMover::ProcessRegenItem()
und nach den Zeilen
PHP Code:
#if __VER >= 11 // __CSC_VER11_3 } #endif //__CSC_VER11_3
fügt ihr das ein
PHP Code:
#ifdef __ADDSHOPITEM if( pCharacter->m_venderItemAry3[i].GetSize() ) { fShop = TRUE; for( int j = 0; j < pCharacter->m_venderItemAry3[i].GetSize(); j++) { pVendor = (LPVENDOR_ITEM)pCharacter->m_venderItemAry3[i].GetAt(j); CItemElem itemElem;
itemElem.m_dwItemId = pVendor->m_dwItemId; itemElem.m_nItemNum = (short)( prj.GetItemProp( pVendor->m_dwItemId )->dwPackMax ); itemElem.m_nHitPoint = prj.GetItemProp( pVendor->m_dwItemId )->dwEndurance;
if( m_ShopInventory[i]->Add( &itemElem ) == FALSE ) break; } } #endif
4. Datei Project.h

Sucht ihr
PHP Code:
} CHARACTER,* LPCHARACTER;
und fügt DRÜBER das ein
PHP Code:
#ifdef __ADDSHOPITEM CPtrArray m_venderItemAry3[ 4 ]; #endif
5. Datei Mover.cpp
Und zum Schluss sucht ihr
PHP Code:
BOOL CMover::IsVendorNPC()
und fügt über (am Ende der Funktion)
das ein
PHP Code:
#ifdef __ADDSHOPITEM for( int i = 0; i < MAX_VENDOR_INVENTORY_TAB; i++ ) { if( pCharacter->m_venderItemAry3[i].GetSize() ) return TRUE; } #endif
Beispiel Cashshop NPC
PHP Code:
MaFl_Is { setting { AddMenu( MMI_DIALOG ); AddMenu( MMI_TRADE );
AddShopItem( 0, II_SYS_SYS_SCR_SMELPROT ); //Sprotect AddShopItem( 0, II_SYS_SYS_SCR_PIEPROT ); //GProtect AddShopItem( 0, II_SYS_SYS_SCR_SMELPROT4 ); //AProtect AddShopItem( 0, II_SYS_SYS_SCR_SMELPROT3 ); //XProtect AddShopItem( 0, II_SYS_SYS_SCR_AWAKECANCEL ); //Reversion AddShopItem( 0, II_SYS_SYS_SCR_SOKCHANG ); // Element Change AddShopItem( 0, II_SYS_SYS_SCR_AMPES ); //Scroll of Experience AddShopItem( 0, II_SYS_SYS_SCR_LEVELDOWN01 ); //Level Down Low AddShopItem( 0, II_SYS_SYS_SCR_LEVELDOWN02 ); //Level Down High AddShopItem( 0, II_SYS_SYS_SCR_PARTYEXPUP01 ); //Scroll of Party EXP (7 Tage) AddShopItem( 0, II_SYS_SYS_SCR_PARTYSKILLUP01 ); //Scroll of Party Skill (7 Tage) AddShopItem( 0, II_CHR_SYS_SCR_PSKILLFULL15 ); //Full Party Skill 15 AddShopItem( 0, II_SYS_SYS_SCR_SCUD ); //Scroll of Sprint AddShopItem( 0, II_SYS_SYS_SCR_BLESSEDNESS ); //Blessing of Goddess AddShopItem( 0, II_CHR_SYS_SCR_RESTATE ); //Restat AddShopItem( 0, II_SYS_SYS_SCR_RECCURENCE ); //Reskill AddShopItem( 0, II_CHR_SYS_SCR_RESTATE_STR ); //Restat STR AddShopItem( 0, II_CHR_SYS_SCR_RESTATE_DEX ); //Restat DEX AddShopItem( 0, II_CHR_SYS_SCR_RESTATE_STA ); //Restat STA AddShopItem( 0, II_CHR_SYS_SCR_RESTATE_INT ); //Restat INT AddShopItem( 0, II_SYS_SYS_SCR_BLESSING ); //Blessing AddShopItem( 0, II_CHR_SYS_SCR_SHOUTFULL15 ); //FullShout 15 AddShopItem( 0, II_SYS_TICKET_CISLAND01 ); // Koralleninsel 1 Tag AddShopItem( 0, II_SYS_TICKET_KEBARAS01 ); // Azria Ticket 7 AddShopItem( 0, II_SYS_TICKET_KEBARAS02 ); // Azria Ticket 15 AddShopItem( 0, II_SYS_TICKET_GUILDHOUSE_COMEBACK01 ); // Scroll of Guild Return AddShopItem( 0, II_CHR_SYS_SCR_ITEMTRANSY_A ); // Item Transy A AddShopItem( 0, II_CHR_SYS_SCR_ITEMTRANSY_B ); // Item Transy B
AddShopItem( 1, II_CHR_SYS_SCR_ACTIVITION ); //Activation AddShopItem( 1, II_CHR_REF_REF_HOLD ); //Refresher Hold AddShopItem( 1, II_CHR_POT_DRI_VITALX ); //VitalX AddShopItem( 1, II_CHR_FOO_COO_GRILLEDEEL ); //Grilled Eel AddShopItem( 1, II_CHR_SYS_SCR_UPCUTSTONE ); //Upcut Stone AddShopItem( 2, II_SYS_SYS_SCR_PET_LIFE ); // Pet Energy AddShopItem( 2, II_SYS_SYS_SCR_PET_TAMER_MISTAKE ); // Mistake of Pet Trainer AddShopItem( 2, II_SYS_SYS_SCR_PET_TAMER_MIRACLE ); // Miracle of Pet Trainer AddShopItem( 2, II_SYS_SYS_SCR_PET_NAMING ); // Pet Name Change AddShopItem( 2, II_SYS_SYS_SCR_PETAWAKECANCEL ); // Scroll of Cancel Pet Awa AddShopItem( 2, II_SYS_SYS_VIS_KEY01 ); // Buff Slot Release AddShopItem( 2, II_SYS_SYS_SCR_PET_MAGIC ); //Buff Pet Transy AddShopItem( 2, II_PET_DOG1 ); //Doggy AddShopItem( 2, II_PET_CAT1 ); //Kitty //AddShopItem( 2, II_PET_SOCCERBALL ); //Soccerball
AddShopItem( 3, II_SYS_VIS_LV1_STR ); // Beads AddShopItem( 3, II_SYS_VIS_LV1_DEX ); // Beads AddShopItem( 3, II_SYS_VIS_LV1_INT ); // Beads AddShopItem( 3, II_SYS_VIS_LV1_STA ); // Beads AddShopItem( 3, II_SYS_VIS_LV1_DMG ); // Beads AddShopItem( 3, II_SYS_VIS_LV1_SPELLRATE ); // Beads AddShopItem( 3, II_SYS_VIS_LV1_CRIRATE ); // Beads AddShopItem( 3, II_SYS_VIS_LV1_BLOMELEE ); // Beads AddShopItem( 3, II_SYS_VIS_LV1_BLRANGE ); // Beads AddShopItem( 3, II_SYS_VIS_LV1_CRITICAL ); // Beads AddShopItem( 3, II_SYS_VIS_LV1_SPEED ); // Beads AddShopItem( 3, II_SYS_VIS_LV1_HITRATE ); // Beads AddShopItem( 3, II_SYS_VIS_LV1_ATKSPEED ); // Beads AddShopItem( 3, II_SYS_VIS_LV1_ATKPOWER ); // Beads AddShopItem( 3, II_SYS_VIS_LV1_ADJDEF ); // Beads AddShopItem( 3, II_SYS_VIS_LV1_ADDMAGIC ); // Beads AddShopItem( 3, II_SYS_VIS_LV1_PARRY ); // Beads AddShopItem( 3, II_SYS_VIS_LV1_HPMAX ); // Beads AddShopItem( 3, II_SYS_VIS_LV1_KILLHP ); // Beads AddShopItem( 3, II_SYS_VIS_LV2_STR ); // Beads AddShopItem( 3, II_SYS_VIS_LV2_DEX ); // Beads AddShopItem( 3, II_SYS_VIS_LV2_INT ); // Beads AddShopItem( 3, II_SYS_VIS_LV2_STA ); // Beads AddShopItem( 3, II_SYS_VIS_LV2_DMG ); // Beads AddShopItem( 3, II_SYS_VIS_LV2_SPELLRATE ); // Beads AddShopItem( 3, II_SYS_VIS_LV2_CRIRATE ); // Beads AddShopItem( 3, II_SYS_VIS_LV2_BLOMELEE ); // Beads AddShopItem( 3, II_SYS_VIS_LV2_BLRANGE ); // Beads AddShopItem( 3, II_SYS_VIS_LV2_CRITICAL ); // Beads AddShopItem( 3, II_SYS_VIS_LV2_CRIBONUS ); // Beads AddShopItem( 3, II_SYS_VIS_LV2_SPEED ); // Beads AddShopItem( 3, II_SYS_VIS_LV2_HITRATE ); // Beads AddShopItem( 3, II_SYS_VIS_LV2_ATKSPEED ); // Beads AddShopItem( 3, II_SYS_VIS_LV2_ATKPOWER ); // Beads AddShopItem( 3, II_SYS_VIS_LV2_ADJDEF ); // Beads AddShopItem( 3, II_SYS_VIS_LV2_ADDMAGIC ); // Beads AddShopItem( 3, II_SYS_VIS_LV2_PARRY ); // Beads AddShopItem( 3, II_SYS_VIS_LV2_HPMAX ); // Beads AddShopItem( 3, II_SYS_VIS_LV2_KILLHP ); // Beads AddShopItem( 3, II_SYS_VIS_LV2_MONSTERDMG ); // Beads AddShopItem( 3, II_SYS_VIS_LV3_WARRIOR ); // Beads AddShopItem( 3, II_SYS_VIS_LV3_KNIGHT ); // Beads AddShopItem( 3, II_SYS_VIS_LV3_BUBBLE ); // Beads AddShopItem( 3, II_SYS_VIS_LV3_IBLIS ); // Beads AddShopItem( 3, II_SYS_VIS_LV3_SHADE ); // Beads
SetImage ( IDS_CHARACTER_INC_000064 ); m_szDialog= "MaFl_Is.txt"; }
SetName ( IDS_CHARACTER_INC_000065 );
AddVendorSlot( 0, IDS_CHARACTER_CUS_100006 );
AddVendorSlot( 1, IDS_CHARACTER_CUS_100007 );
AddVendorSlot( 2, IDS_CHARACTER_CUS_100008 );
AddVendorSlot( 3, IDS_CHARACTER_CUS_100009 ); }
Für die die ihren Source noch nicht in den Dateien Mover.cpp,Project.cpp,Project.h geändert haben hier ist ein Downloadlink
Natürlich müsst ihr noch in jeder VersionCommon.h #define __ADDSHOPITEM hinzufügen
Nicht vergessen alle Server und die Neuz neu zu kompilieren
Die Funktion wird nicht funktionieren, falls in der character.inc AddVendorItem benutzt wird. Das heißt entweder AddShopItem oder AddVendorItem benutzen.
Credits: 100% me
|
|
|
03/07/2011, 22:11
|
#2
|
elite*gold: 10
Join Date: Feb 2011
Posts: 1,760
Received Thanks: 501
|
wenns geht gut aber nicht nötig weil so viel arbeit nicht is
|
|
|
03/07/2011, 22:15
|
#3
|
elite*gold: 0
Join Date: Oct 2008
Posts: 680
Received Thanks: 337
|
Danke für die Kritik.
Ja aber wie fügst du ohne dieser Funktion nur ein Wooden Sword einem Shop hinzu?^^
Würde ich gerne wissen.
|
|
|
03/08/2011, 00:01
|
#4
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
|
Find es gut von dir, ich werde es dem Index beifügen.
|
|
|
03/08/2011, 02:11
|
#5
|
elite*gold: 10
Join Date: Feb 2011
Posts: 1,760
Received Thanks: 501
|
Quote:
Originally Posted by Flyff_Service
Danke für die Kritik.
Ja aber wie fügst du ohne dieser Funktion nur ein Wooden Sword einem Shop hinzu?^^
Würde ich gerne wissen.
|
was willst du mit einem wooden sword??
|
|
|
03/08/2011, 02:13
|
#6
|
elite*gold: 0
Join Date: Oct 2008
Posts: 680
Received Thanks: 337
|
Schon mal von dem Wort Beispiel gehört?
Ein einzelnes Item hinzufügen, wie funktioniert das?
|
|
|
03/08/2011, 02:37
|
#7
|
elite*gold: 2
Join Date: Jul 2009
Posts: 1,447
Received Thanks: 923
|
Sind Kiddys, lass es jojo ... :s
Ansich, okay, aber wozu, wenn es doch die TXT Datei gibt! wuwu
|
|
|
03/08/2011, 10:19
|
#8
|
elite*gold: 142
Join Date: Apr 2010
Posts: 859
Received Thanks: 428
|
nice 
habs bisher immer über die "rarity-range" gemacht (hatte damals sogar den bead shop auf meinem server schön getrennt xD)
@crasy: welche von den vielen meinst du^^
greetz
|
|
|
03/08/2011, 12:11
|
#9
|
elite*gold: 0
Join Date: Jun 2008
Posts: 302
Received Thanks: 69
|
Official Source\_Common\Mover.cpp(1418) : error C2819: type 'CPtrArray' does not have an overloaded member 'operator ->'
C:\Program Files (x86)\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\afxcoll.h(367) : see declaration of 'CPtrArray'
did you intend to use '.' instead?
Official Source\_Common\Mover.cpp(1418) : error C2227: left of '->GetSize' must point to class/struct/union
type is 'CPtrArray'
did you intend to use '.' instead?
|
|
|
03/08/2011, 13:09
|
#10
|
elite*gold: 30
Join Date: Oct 2010
Posts: 1,509
Received Thanks: 849
|
Quote:
Originally Posted by trashee09
nc tutorial
xD
|
#reportet wegen Spam.
________________________________________
An sich ein gutes Tutorial, finde ich gut
|
|
|
03/08/2011, 14:00
|
#11
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
|
Quote:
Originally Posted by philli
Official Source\_Common\Mover.cpp(1418) : error C2819: type 'CPtrArray' does not have an overloaded member 'operator ->'
C:\Program Files (x86)\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\afxcoll.h(367) : see declaration of 'CPtrArray'
did you intend to use '.' instead?
Official Source\_Common\Mover.cpp(1418) : error C2227: left of '->GetSize' must point to class/struct/union
type is 'CPtrArray'
did you intend to use '.' instead?
|
PHP Code:
#ifdef __ADDSHOPITEM if( pCharacter->m_venderItemAry3[i]->GetSize() ) { if(!fShop) m_ShopInventory[i]->Clear();
fShop = TRUE;
for( int j = 0; j < pCharacter->m_venderItemAry3[i].GetSize(); j++) { pVendor = (LPVENDOR_ITEM)pCharacter->m_venderItemAry3[i].GetAt(j); CItemElem itemElem; itemElem.m_dwItemId = pVendor->m_dwItemId; itemElem.m_nItemNum = (short)( prj.GetItemProp( pVendor->m_dwItemId )->dwPackMax ); itemElem.m_nHitPoint = prj.GetItemProp( pVendor->m_dwItemId )->dwEndurance; if( (int)itemElem.GetChipCost() < 1 && pCharacter->m_nVenderType == 1 ) Error( "chip cost < 1 : npc = %s, item = %d", pCharacter->m_szKey, pVendor->m_dwItemId ); else m_ShopInventory[i]->Add( &itemElem ); } } #endif
Change it to
PHP Code:
#ifdef __ADDSHOPITEM if( pCharacter->m_venderItemAry3[i].GetSize() ) { if(!fShop) m_ShopInventory[i]->Clear();
fShop = TRUE;
for( int j = 0; j < pCharacter->m_venderItemAry3[i].GetSize(); j++) { pVendor = (LPVENDOR_ITEM)pCharacter->m_venderItemAry3[i].GetAt(j); CItemElem itemElem; itemElem.m_dwItemId = pVendor->m_dwItemId; itemElem.m_nItemNum = (short)( prj.GetItemProp( pVendor->m_dwItemId )->dwPackMax ); itemElem.m_nHitPoint = prj.GetItemProp( pVendor->m_dwItemId )->dwEndurance; if( (int)itemElem.GetChipCost() < 1 && pCharacter->m_nVenderType == 1 ) Error( "chip cost < 1 : npc = %s, item = %d", pCharacter->m_szKey, pVendor->m_dwItemId ); else m_ShopInventory[i]->Add( &itemElem ); } } #endif
|
|
|
03/08/2011, 14:08
|
#12
|
elite*gold: 0
Join Date: Oct 2008
Posts: 680
Received Thanks: 337
|
Danke, hatte den Source nicht mehr und hab einfach in Notepad++ programmiert ohne danach den Code durch den Compiler zu jagen^^
@©ross:
Jojo mit J xD
|
|
|
03/08/2011, 18:13
|
#13
|
elite*gold: 142
Join Date: Apr 2010
Posts: 859
Received Thanks: 428
|
Quote:
Originally Posted by Flyff_Service
@©ross:
Jojo mit J xD
|
? xD hab in meinem post kein "Jojo" geschrieben? ôo
@Sedrika: was soll dein code den ändern? ô_o
winmerge hat kein unterschied erkannt
|
|
|
03/08/2011, 18:32
|
#14
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
|
Quote:
Originally Posted by ©ross
? xD hab in meinem post kein "Jojo" geschrieben? ôo
@Sedrika: was soll dein code den ändern? ô_o
winmerge hat kein unterschied erkannt
|
Guck dir mal die zweite Zeile an:
PHP Code:
if( pCharacter->m_venderItemAry3[i]->GetSize() )
das is aber falsch deswegen ein error
entsprechend ist, dass da das "->" nciht stimmt =)
das hier ist richtig:
PHP Code:
if( pCharacter->m_venderItemAry3[i].GetSize() )
|
|
|
03/08/2011, 18:47
|
#15
|
elite*gold: 142
Join Date: Apr 2010
Posts: 859
Received Thanks: 428
|
komisch 
mir wars so als ob das im 1. post auch ständ :x
ansonsten hab ich nix gesagt xD
(oder Jojo hats editiert ^^)
whatever:
Funktion ist sehr naice und funzt^^
|
|
|
 |
|
Similar Threads
|
[HOW TO] shop´s neu machen/hinzufügen
02/05/2010 - Metin2 Private Server - 3 Replies
HI, ich möchte gerne ein TuT zum erstellen neuer shops .
Es sollte evtl alles über shops enthalten sein...hatte schonmal sone seite aber weis leider nichtmehr wie sie heißt
Links bitte per pn schicken oder hier posten ( wenn ihr ärger kriegen wollt xD)
|
NPC ITEMS HINZUFÜGEN?
10/11/2009 - Metin2 Private Server - 0 Replies
Wie kann man aufn p-server (eigener server)denn npcs neue sachen geben denke es gab ma nen tut finde des nit.
|
NPC Shop hinzufügen. Wie?
09/22/2008 - Flyff Private Server - 19 Replies
Hallo.
Ich würde gerne mal wissen, wie man bei diesem Server bei den NPC's Shops hinzufügt.
Ich habe auch schon versucht, unter /NPCShops/ die Dateien zu öffnen, dort war aber nur Zeichensalat.
mfg Darkdevil1
|
Items zum NPC hinzufügen
11/06/2006 - Kal Online - 4 Replies
Hi,
mir is grad bissel langweilig, da hab ich gedacht ich mach mal nen Guide wie man beim Merchant Items hinzufügt, die man dan für 10 Geons kaufen kann.
Viele Pserver haben das schon gefixt, aber es gibt noch paar wo´s geht.
Also als erstes müssen wir uns einen NPC aussuchen, ich habe mal den Magicial Merchant Ma-Lip ausgesucht der in Narootuh steht.
Als nächstes sucht ihr in eurer message-e.dat (die is in der config.pk) nach ma-lip,
dieser hat den Index 68.
|
Items zu RO hinzufügen???
07/06/2005 - Ragnarok Online - 8 Replies
Hi @ All
habe da mal eine frage und zwar habe mir vor kurzem einen sogenanten
"item generator ro+skill" herunter geladen habe ihn auch gleich ausprobieren wollen ABER es ging nicht.
Ich konnte die sogenanten "RAW Packets" also den cod nicht hochladen ??? das ich die Items im spiel habe.
Brauche ich da noch ein zusatzprogramm ????
THX vor erst mal
|
All times are GMT +1. The time now is 03:33.
|
|