Ich hatte es so gemacht die Items für jede Kategorie in einer Spalte zu speichern und über eine Prozedur je nach Typ der jeweiligen Spalte zuzuweisen und dann beim Login auch aus den jeweiligen Spalten wieder auszulesen.
Ich hatte es so gemacht die Items für jede Kategorie in einer Spalte zu speichern und über eine Prozedur je nach Typ der jeweiligen Spalte zuzuweisen und dann beim Login auch aus den jeweiligen Spalten wieder auszulesen.
ah ok... ich verstehe, aber wie haste das mim Equipment dann geregelt?
Beim Login wird erstmal nur das Equipment gequeried, heisst die ersten 32 Indezes ( oder waren es die letzten?^^ ) Jedenfalls war das der Grund für mich keinen 4er Array für das Inventar zu verwenden ( also CItemContainer<CItemElem> m_nInventory[4] ) oder gar die DB umzuproggen
Theoretisch muss man da gar nicht so viel machen
1. das Inventar muss bearbeitet werden, sodass 3 weitere Tabs geaddet werden... schnell gemacht:
Code:
for( int i=0;i<4;i++ )
m_pInventory[i].SetItemContainer( ITYPE_ITEM, 42 );//ItemContainer erzeugen
for( int i=0;i<(int)g_pPlayer->m_Inventory.m_dwItemMax;i++ )
{
int index = g_pPlayer->m_Inventory.m_apItem[i].GetProp()->GetInvenIndex();
m_pInventory[ index ].Add( &g_pPlayer->m_Inventory.m_apItem[i] );
//Items in die Container einfügen... habe eine Funktion, die den Index returnt, in Abhängigkeit vom Itemtyp
}
m_wndItemCtrl.Create( WLVS_ICON, CRect( 0, 0, 250, 250 ), pTabCtrl, 11 );//Tab erstellen
m_wndItemCtrl.InitItem( &m_pInventory[0], APP_INVENTORY, 1 );//und initialisieren
m_wndItemCtrl_ext[0].Create( WLVS_ICON, CRect( 0, 0, 250, 250 ), pTabCtrl, 12 );
m_wndItemCtrl_ext[0].InitItem( &m_pInventory[1], APP_INVENTORY, 2 );
m_wndItemCtrl_ext[1].Create( WLVS_ICON, CRect( 0, 0, 250, 250 ), pTabCtrl, 13 );
m_wndItemCtrl_ext[1].InitItem( &m_pInventory[2], APP_INVENTORY, 3 );
m_wndItemCtrl_ext[2].Create( WLVS_ICON, CRect( 0, 0, 250, 250 ), pTabCtrl, 14 );
m_wndItemCtrl_ext[2].InitItem( &m_pInventory[3], APP_INVENTORY, 4 );
2. Das Inventar auf das 4-fache vergrößern... Hintergedanke: alle Inventarsize/4 beginnt ein neues Tab... dadurch muss dann net so viel geproggt werden.
WHERE I CAN FIND THIS CODE IN SOURCE?
3. die WndItemCtrl Klasse umprogrammieren, damit die richtigen Items angezeigt werden, bei bewegen eines Items der richtige Index abgefragt wird usw...
...so würde ich mir das mit dem Tabbed Inv vorstellen... abe es allerdings noch nicht umgesetzt, weil ich nicht genug Zeit hatte^^
ach ja... die Index Funktion nicht vergessen^^
die habe ich in die ItemProp Klasse rein:
Code:
int GetInvenIndex( )
{
switch( dwItemKind3 )
{
case IK3_GEM:
return 3;
break;
case IK3_SUMMON_NPC:
case IK3_PET:
return 1;
break;
case IK3_GLOVE:
case IK3_CLOTH:
case IK3_CLOAK:
case IK3_SHOES:
case IK3_MASK:
case IK3_HAT:
return 2;
break;
default:
return 0;
break;
}
return 0;
}
AND THIS WHERE SOURCE CAN I PUT THIS CODE
Edit: Man muss noch ein paar andere Funktionen umproggen, wie zB die CreateItem Funktion, damit er erkennt, wann das Inventar voll ist, was allerdings auch direkt in die >CItemContainer Klasse programmiert werden kann^^
d3d menü 09/29/2010 - General Coding - 7 Replies Hallo ich suche einen c++ code für ein d3d menü mit pfeiltasten zum an und aus machen
Auser dehm brauch ich hilfe bei dem includen
#include <d3dx9>
geht bei mir net habe mir schon direct x gedownloadedt krigs aber net in c++ importiert.
f1 menü 04/22/2010 - Kal Online - 4 Replies hello everyone..i tryed now some values to change the f1 menu and i found some shops with higher grade armors, mix stones etc. But if i want to buy a mix stone, i select one, press "buy" but i dont get any item. I can see prices from all items and if i select more items i can see how much they cost together but i still cant buy them. anyone can tell me how it works?
Menü 11/15/2009 - General Coding - 4 Replies Hi,
weis jemand wie man es hinbekommt so ein Menü hinzubekommen wie auf dieser Seite TS-Viwer. Also so eines, wie wenn man auf einen der Banner klickt.
MfG,
Kevin