You last visited: Today at 09:28
Advertisement
[C++/Python]12 Inventar Seiten
Discussion on [C++/Python]12 Inventar Seiten within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.
08/27/2015, 03:53
#1
elite*gold: 2
Join Date: Jan 2008
Posts: 531
Received Thanks: 234
[C++/Python]12 Inventar Seiten
Hey.
Hiermit könnt ihr 12 Inventar Seiten benutzten könnt ihr nach belieben verändern. Es können maximal 65k Slot's verwendet werden.
- steht für suchen und muss durch das + ersetzt werden
Game Source:
common/length.h
PHP Code:
- INVENTORY_MAX_NUM = 135 , + INVENTORY_MAX_NUM = 540 ,
common/tables.h
PHP Code:
typedef struct SQuickslot { BYTE type ; - BYTE pos ; + UINT pos ; } TQuickslot ;
game/src/char.h
PHP Code:
- BYTE bItemGrid [ INVENTORY_AND_EQUIP_SLOT_MAX ]; + UINT bItemGrid [ INVENTORY_AND_EQUIP_SLOT_MAX ]; - void SyncQuickslot ( BYTE bType , BYTE bOldPos , BYTE bNewPos ); + void SyncQuickslot ( BYTE bType , UINT bOldPos , UINT bNewPos ); - bool GetQuickslot ( BYTE pos , TQuickslot ** ppSlot ); + bool GetQuickslot ( UINT pos , TQuickslot ** ppSlot ); - bool SetQuickslot ( BYTE pos , TQuickslot & rSlot ); + bool SetQuickslot ( UINT pos , TQuickslot & rSlot ); - bool DelQuickslot ( BYTE pos ); + bool DelQuickslot ( UINT pos ); - bool SwapQuickslot ( BYTE a , BYTE b ); + bool SwapQuickslot ( UINT a , UINT b ); - void ChainQuickslotItem ( LPITEM pItem , BYTE bType , BYTE bOldPos ); + void ChainQuickslotItem ( LPITEM pItem , BYTE bType , UINT bOldPos ); - void SetWear ( BYTE bCell , LPITEM item ); + void SetWear ( UINT bCell , LPITEM item ); - LPITEM GetWear ( BYTE bCell ) const; + LPITEM GetWear ( UINT bCell ) const; - bool RefineInformation ( BYTE bCell , BYTE bType , int iAdditionalCell = - 1 ); + bool RefineInformation ( UINT bCell , BYTE bType , int iAdditionalCell = - 1 ); - bool SwapItem ( BYTE bCell , BYTE bDestCell ); + bool SwapItem ( UINT bCell , UINT bDestCell );
game/src/char_battle.cpp
PHP Code:
## 1000 kann nach belieben angepasst werden sollte bei 6 Inventar seiten über 255 sein. ## 2 x vorhanden beide ersetzen! - SyncQuickslot ( QUICKSLOT_TYPE_ITEM , vec_bSlots [ i ], 255 ); + SyncQuickslot ( QUICKSLOT_TYPE_ITEM , vec_bSlots [ i ], 1000 ); ## 2 x vorhanden beide ersetzen! - SyncQuickslot ( QUICKSLOT_TYPE_ITEM , WEAR_UNIQUE1 , 255 ); + SyncQuickslot ( QUICKSLOT_TYPE_ITEM , WEAR_UNIQUE1 , 1000 );
game/src/char_item.cpp
PHP Code:
- LPITEM CHARACTER :: GetWear ( BYTE bCell ) const + LPITEM CHARACTER :: GetWear ( UINT bCell ) const - void CHARACTER :: SetWear ( BYTE bCell , LPITEM item ) + void CHARACTER :: SetWear ( UINT bCell , LPITEM item ) ## 1000 kann nach belieben angepasst werden sollte bei 6 Inventar seiten über 255 sein. - SyncQuickslot ( QUICKSLOT_TYPE_ITEM , i , 255 ); + SyncQuickslot ( QUICKSLOT_TYPE_ITEM , i , 1000 ); - BYTE bCell = Cell . cell ; + UINT bCell = Cell . cell ; ## 2 x vorhanden beide ersetzen! - if ( m_pointsInstant . bItemGrid [ bCell ] == iExceptionCell ) + if ( m_pointsInstant . bItemGrid [ bCell ] == ( UINT ) iExceptionCell ) ## 2 x vorhanden beide ersetzen! - BYTE bPage = bCell / ( INVENTORY_MAX_NUM / 3 ); + UINT bPage = bCell / ( INVENTORY_MAX_NUM / 12 ); ## 2 x vorhanden beide ersetzen! - BYTE p = bCell + ( 5 * j ); + UINT p = bCell + ( 5 * j ); ## 2 x vorhanden beide ersetzen! - if ( p / ( INVENTORY_MAX_NUM / 3 ) != bPage ) + if ( p / ( INVENTORY_MAX_NUM / 12 ) != bPage ) ## 3 x vorhanden beide ersetzen! - BYTE bCell = item -> GetCell (); + UINT bCell = item -> GetCell (); - bool CHARACTER :: RefineInformation ( BYTE bCell , BYTE bType , int iAdditionalCell ) + bool CHARACTER :: RefineInformation ( UINT bCell , BYTE bType , int iAdditionalCell ) - SyncQuickslot ( QUICKSLOT_TYPE_ITEM , Cell . cell , 255 ); + SyncQuickslot ( QUICKSLOT_TYPE_ITEM , Cell . cell , 1000 ); - bool CHARACTER :: SwapItem ( BYTE bCell , BYTE bDestCell ) + bool CHARACTER :: SwapItem ( UINT bCell , UINT bDestCell ) - BYTE bEquipCell = item2 -> GetCell () - INVENTORY_MAX_NUM ; + INT bEquipCell = item2 -> GetCell () - INVENTORY_MAX_NUM ; - BYTE bInvenCell = item1 -> GetCell (); + UINT bInvenCell = item1 -> GetCell (); - BYTE bCell1 = item1 -> GetCell (); + UINT bCell1 = item1 -> GetCell (); - BYTE bCell2 = item2 -> GetCell (); + UINT bCell2 = item2 -> GetCell (); - BYTE bOldCell = item -> GetCell (); + UINT bOldCell = item -> GetCell ();
game/src/char_quickslot.cpp
PHP Code:
- void CHARACTER :: SyncQuickslot ( BYTE bType , BYTE bOldPos , BYTE bNewPos ) + void CHARACTER :: SyncQuickslot ( BYTE bType , UINT bOldPos , UINT bNewPos ) - if ( bNewPos == 255 ) + if ( bNewPos == 1000 ) - bool CHARACTER :: GetQuickslot ( BYTE pos , TQuickslot ** ppSlot ) + bool CHARACTER :: GetQuickslot ( UINT pos , TQuickslot ** ppSlot ) - bool CHARACTER :: SetQuickslot ( BYTE pos , TQuickslot & rSlot ) + bool CHARACTER :: SetQuickslot ( UINT pos , TQuickslot & rSlot ) - bool CHARACTER :: DelQuickslot ( BYTE pos ) + bool CHARACTER :: DelQuickslot ( UINT pos ) - bool CHARACTER :: SwapQuickslot ( BYTE a , BYTE b ) + bool CHARACTER :: SwapQuickslot ( UINT a , UINT b ) - void CHARACTER :: ChainQuickslotItem ( LPITEM pItem , BYTE bType , BYTE bOldPos ) + void CHARACTER :: ChainQuickslotItem ( LPITEM pItem , BYTE bType , UINT bOldPos )
game/src/cmd_general.cpp
PHP Code:
- for ( BYTE i = 0 ; i < INVENTORY_MAX_NUM ; ++ i ) + for ( UINT i = 0 ; i < INVENTORY_MAX_NUM ; ++ i )
game/src/cmd_gm.cpp
PHP Code:
- ch -> SyncQuickslot ( QUICKSLOT_TYPE_ITEM , i , 255 ); + ch -> SyncQuickslot ( QUICKSLOT_TYPE_ITEM , i , 1000 ); ## 3 x vorhanden beide ersetzen! - BYTE cell = 0 ; + UINT cell = 0 ;
game/src/exchange.cpp
PHP Code:
Such nach -> bool CExchange :: CheckSpace () ## Nach belieben anpassen das ist für 12 Inventare sonst wie folgt fortsetzen bool CExchange :: CheckSpace () { static CGrid s_grid1 ( 5 , INVENTORY_MAX_NUM / 5 / 12 ); // inven page 1 static CGrid s_grid2 ( 5 , INVENTORY_MAX_NUM / 5 / 12 ); // inven page 2 static CGrid s_grid3 ( 5 , INVENTORY_MAX_NUM / 5 / 12 ); // inven page 3 static CGrid s_grid4 ( 5 , INVENTORY_MAX_NUM / 5 / 12 ); // inven page 4 static CGrid s_grid5 ( 5 , INVENTORY_MAX_NUM / 5 / 12 ); // inven page 5 static CGrid s_grid6 ( 5 , INVENTORY_MAX_NUM / 5 / 12 ); // inven page 6 static CGrid s_grid7 ( 5 , INVENTORY_MAX_NUM / 5 / 12 ); // inven page 7 static CGrid s_grid8 ( 5 , INVENTORY_MAX_NUM / 5 / 12 ); // inven page 8 static CGrid s_grid9 ( 5 , INVENTORY_MAX_NUM / 5 / 12 ); // inven page 9 static CGrid s_grid10 ( 5 , INVENTORY_MAX_NUM / 5 / 12 ); // inven page 10 static CGrid s_grid11 ( 5 , INVENTORY_MAX_NUM / 5 / 12 ); // inven page 11 static CGrid s_grid12 ( 5 , INVENTORY_MAX_NUM / 5 / 12 ); // inven page 12 s_grid1 . Clear (); s_grid2 . Clear (); s_grid3 . Clear (); s_grid4 . Clear (); s_grid5 . Clear (); s_grid6 . Clear (); s_grid7 . Clear (); s_grid8 . Clear (); s_grid9 . Clear (); s_grid10 . Clear (); s_grid11 . Clear (); s_grid12 . Clear (); LPCHARACTER victim = GetCompany ()-> GetOwner (); LPITEM item ; int i ; const int PageSlotCount = INVENTORY_MAX_NUM / 12 ; for ( i = 0 ; i < INVENTORY_MAX_NUM ; ++ i ) { if (!( item = victim -> GetInventoryItem ( i ))) continue; BYTE itemSize = item -> GetSize (); if ( i < PageSlotCount ) s_grid1 . Put ( i , 1 , itemSize ); else if ( i < PageSlotCount * 2 ) s_grid2 . Put ( i - PageSlotCount , 1 , itemSize ); else if ( i < PageSlotCount * 3 ) s_grid3 . Put ( i - PageSlotCount * 2 , 1 , itemSize ); else if ( i < PageSlotCount * 4 ) s_grid4 . Put ( i - PageSlotCount * 3 , 1 , itemSize ); else if ( i < PageSlotCount * 5 ) s_grid5 . Put ( i - PageSlotCount * 4 , 1 , itemSize ); else if ( i < PageSlotCount * 6 ) s_grid6 . Put ( i - PageSlotCount * 5 , 1 , itemSize ); else if ( i < PageSlotCount * 7 ) s_grid7 . Put ( i - PageSlotCount * 6 , 1 , itemSize ); else if ( i < PageSlotCount * 8 ) s_grid8 . Put ( i - PageSlotCount * 7 , 1 , itemSize ); else if ( i < PageSlotCount * 9 ) s_grid9 . Put ( i - PageSlotCount * 8 , 1 , itemSize ); else if ( i < PageSlotCount * 10 ) s_grid10 . Put ( i - PageSlotCount * 9 , 1 , itemSize ); else if ( i < PageSlotCount * 11 ) s_grid11 . Put ( i - PageSlotCount * 10 , 1 , itemSize ); else if ( i < PageSlotCount * 12 ) s_grid12 . Put ( i - PageSlotCount * 11 , 1 , itemSize ); } static std :: vector < WORD > s_vDSGrid ( DRAGON_SOUL_INVENTORY_MAX_NUM ); bool bDSInitialized = false ; for ( i = 0 ; i < EXCHANGE_ITEM_MAX_NUM ; ++ i ) { if (!( item = m_apItems [ i ])) continue; BYTE itemSize = item -> GetSize (); if ( item -> IsDragonSoul ()) { if (! victim -> DragonSoul_IsQualified ()) { return false ; } if (! bDSInitialized ) { bDSInitialized = true ; victim -> CopyDragonSoulItemGrid ( s_vDSGrid ); } bool bExistEmptySpace = false ; WORD wBasePos = DSManager :: instance (). GetBasePosition ( item ); if ( wBasePos >= DRAGON_SOUL_INVENTORY_MAX_NUM ) return false ; for ( int i = 0 ; i < DRAGON_SOUL_BOX_SIZE ; i ++) { WORD wPos = wBasePos + i ; if ( 0 == s_vDSGrid [ wBasePos ]) { bool bEmpty = true ; for ( int j = 1 ; j < item -> GetSize (); j ++) { if ( s_vDSGrid [ wPos + j * DRAGON_SOUL_BOX_COLUMN_NUM ]) { bEmpty = false ; break; } } if ( bEmpty ) { for ( int j = 0 ; j < item -> GetSize (); j ++) { s_vDSGrid [ wPos + j * DRAGON_SOUL_BOX_COLUMN_NUM ] = wPos + 1 ; } bExistEmptySpace = true ; break; } } if ( bExistEmptySpace ) break; } if (! bExistEmptySpace ) return false ; } else { int iPos = s_grid1 . FindBlank ( 1 , itemSize ); if ( iPos >= 0 ) { s_grid1 . Put ( iPos , 1 , itemSize ); continue; } iPos = s_grid2 . FindBlank ( 1 , itemSize ); if ( iPos >= 0 ) { s_grid2 . Put ( iPos , 1 , itemSize ); continue; } iPos = s_grid3 . FindBlank ( 1 , itemSize ); if ( iPos >= 0 ) { s_grid3 . Put ( iPos , 1 , itemSize ); continue; } iPos = s_grid4 . FindBlank ( 1 , itemSize ); if ( iPos >= 0 ) { s_grid4 . Put ( iPos , 1 , itemSize ); continue; } iPos = s_grid5 . FindBlank ( 1 , itemSize ); if ( iPos >= 0 ) { s_grid5 . Put ( iPos , 1 , itemSize ); continue; } iPos = s_grid6 . FindBlank ( 1 , itemSize ); if ( iPos >= 0 ) { s_grid6 . Put ( iPos , 1 , itemSize ); continue; } iPos = s_grid7 . FindBlank ( 1 , itemSize ); if ( iPos >= 0 ) { s_grid7 . Put ( iPos , 1 , itemSize ); continue; } iPos = s_grid8 . FindBlank ( 1 , itemSize ); if ( iPos >= 0 ) { s_grid8 . Put ( iPos , 1 , itemSize ); continue; } iPos = s_grid9 . FindBlank ( 1 , itemSize ); if ( iPos >= 0 ) { s_grid9 . Put ( iPos , 1 , itemSize ); continue; } iPos = s_grid10 . FindBlank ( 1 , itemSize ); if ( iPos >= 0 ) { s_grid10 . Put ( iPos , 1 , itemSize ); continue; } iPos = s_grid11 . FindBlank ( 1 , itemSize ); if ( iPos >= 0 ) { s_grid11 . Put ( iPos , 1 , itemSize ); continue; } iPos = s_grid12 . FindBlank ( 1 , itemSize ); if ( iPos >= 0 ) { s_grid12 . Put ( iPos , 1 , itemSize ); continue; } return false ; } } return true ; }
exchange.cpp fortsetzung:
PHP Code:
- m_pOwner -> SyncQuickslot ( QUICKSLOT_TYPE_ITEM , item -> GetCell (), 255 ); + m_pOwner -> SyncQuickslot ( QUICKSLOT_TYPE_ITEM , item -> GetCell (), 1000 );
game/src/fishing.cpp
PHP Code:
## 2 x vorhanden beide ersetzen! - BYTE bCell = rod -> GetCell (); + UINT bCell = rod -> GetCell ();
game/src/input_main.cpp
PHP Code:
case SHOP_SUBHEADER_CG_SELL2 : { - if ( uiBytes < sizeof ( BYTE ) + sizeof ( BYTE )) + if ( uiBytes < sizeof ( UINT ) + sizeof ( BYTE )) return - 1 ; - BYTE pos = *( c_pData ++); + UINT pos = * reinterpret_cast <const UINT *>( c_pData ++); BYTE count = *( c_pData ); sys_log ( 0 , "INPUT: %s SHOP: SELL2" , ch -> GetName ()); CShopManager :: instance (). Sell ( ch , pos , count ); - return sizeof ( BYTE ) + sizeof ( BYTE ); + return sizeof ( UINT ) + sizeof ( BYTE ); } - ch -> SyncQuickslot ( QUICKSLOT_TYPE_ITEM , p -> ItemPos . cell , 255 ); + ch -> SyncQuickslot ( QUICKSLOT_TYPE_ITEM , p -> ItemPos . cell , 1000 );
game/src/item.cpp
PHP Code:
- pOwner -> SyncQuickslot ( QUICKSLOT_TYPE_ITEM , wCell , 255 ); + pOwner -> SyncQuickslot ( QUICKSLOT_TYPE_ITEM , wCell , 1000 ); - m_pOwner -> SyncQuickslot ( QUICKSLOT_TYPE_ITEM , m_wCell , 255 ); + m_pOwner -> SyncQuickslot ( QUICKSLOT_TYPE_ITEM , m_wCell , 1000 ); - bool CItem :: EquipTo ( LPCHARACTER ch , BYTE bWearCell ) + bool CItem :: EquipTo ( LPCHARACTER ch , UINT bWearCell )
game/src/item.h
PHP Code:
- bool EquipTo ( LPCHARACTER ch , BYTE bWearCell ); + bool EquipTo ( LPCHARACTER ch , UINT bWearCell );
game/src/item_manager.cpp
PHP Code:
- o -> SyncQuickslot ( QUICKSLOT_TYPE_ITEM , item -> GetCell (), 255 ); + o -> SyncQuickslot ( QUICKSLOT_TYPE_ITEM , item -> GetCell (), 1000 );
game/src/minig.cpp
PHP Code:
## 2 x vorhanden beide ersetzen! - BYTE bCell = rkOldPick . GetCell (); + UINT bCell = rkOldPick . GetCell ();
game/src/packet.h
PHP Code:
typedef struct command_quickslot_add { BYTE header ; - BYTE pos ; + UINT pos ; TQuickslot slot ; } TPacketCGQuickslotAdd ; typedef struct command_quickslot_del { BYTE header ; - BYTE pos ; + UINT pos ; } TPacketCGQuickslotDel ; typedef struct command_quickslot_swap { BYTE header ; - BYTE pos ; + UINT pos ; - BYTE change_pos ; + UINT change_pos ; } TPacketCGQuickslotSwap ; typedef struct packet_item_del { BYTE header ; - BYTE pos ; + UINT pos ; } TPacketGCItemDel ; struct packet_quickslot_add { BYTE header ; - BYTE pos ; + UINT pos ; TQuickslot slot ; }; struct packet_quickslot_del { BYTE header ; - BYTE pos ; + UINT pos ; }; struct packet_quickslot_swap { BYTE header ; - BYTE pos ; + UINT pos ; - BYTE pos_to ; + UINT pos_to ; }; typedef struct SPacketCGRefine { BYTE header ; - BYTE pos ; + UINT pos ; BYTE type ; } TPacketCGRefine ; typedef struct SPacketCGRequestRefineInfo { BYTE header ; - BYTE pos ; + UINT pos ; } TPacketCGRequestRefineInfo ; typedef struct SPacketGCRefineInformaion { BYTE header ; BYTE type ; - BYTE pos ; + UINT pos ; DWORD src_vnum ; DWORD result_vnum ; BYTE material_count ;
game/src/questlua_global.cpp
PHP Code:
## 2 x vorhanden beide ersetzen! - BYTE bCell = ( BYTE ) lua_tonumber ( L ,- 1 ); + UINT bCell = lua_tonumber ( L , - 1 );
game/src/questlua_item.cpp
PHP Code:
- BYTE bCell = pItem -> GetCell (); + UINT bCell = pItem -> GetCell ();
game/src/questlua_pc.cpp
PHP Code:
, - BYTE bCell = ( BYTE ) lua_tonumber ( L , 1 ); + UINT bCell = lua_tonumber ( L , 1 );
game/src/safebox.cpp
PHP Code:
- LPITEM CSafebox :: GetItem ( BYTE bCell ) + LPITEM CSafebox :: GetItem ( INT bCell ) - bool CSafebox :: MoveItem ( BYTE bCell , BYTE bDestCell , BYTE count ) + bool CSafebox :: MoveItem ( INT bCell , INT bDestCell , BYTE count )
game/src/safebox.h
PHP Code:
- bool MoveItem ( BYTE bCell , BYTE bDestCell , BYTE count ); + bool MoveItem ( INT bCell , INT bDestCell , BYTE count ); - LPITEM GetItem ( BYTE bCell ); + LPITEM GetItem ( INT bCell );
game/src/shop.cpp
PHP Code:
- m_pkPC -> SyncQuickslot ( QUICKSLOT_TYPE_ITEM , item -> GetCell (), 255 ); + m_pkPC -> SyncQuickslot ( QUICKSLOT_TYPE_ITEM , item -> GetCell (), 1000 );
game/src/shop_manager.cpp
PHP Code:
- void CShopManager :: Sell ( LPCHARACTER ch , BYTE bCell , BYTE bCount ) + void CShopManager :: Sell ( LPCHARACTER ch , UINT bCell , BYTE bCount )
game/src/shop_manager.h
PHP Code:
- void Sell ( LPCHARACTER ch , BYTE bCell , BYTE bCount = 0 ); + void Sell ( LPCHARACTER ch , UINT bCell , BYTE bCount = 0 );
Kommen wir zur Client Source
Client Source:
Client/UserInterface/AbstractPlayer.h
PHP Code:
- virtual void AddQuickSlot ( int QuickslotIndex , char IconType , char IconPosition ) = 0 ; + virtual void AddQuickSlot ( int QuickslotIndex , char IconType , INT IconPosition ) = 0 ;
Client/UserInterface/GameType.h
PHP Code:
-const DWORD c_Inventory_Page_Count +const DWORD c_Inventory_Page_Count = 12 ; typedef struct SQuickSlot { BYTE Type ; - BYTE Position ; + UINT Position ; } TQuickSlot ;
Client/UserInterface/Packet.h
PHP Code:
typedef struct command_quickslot_add { BYTE header ; - BYTE pos ; + UINT pos ; TQuickSlot slot ; } TPacketCGQuickSlotAdd ; typedef struct command_quickslot_del { BYTE header ; - BYTE pos ; + UINT pos ; } TPacketCGQuickSlotDel ; typedef struct command_quickslot_swap { BYTE header ; - BYTE pos ; + UINT pos ; - BYTE change_pos ; + UINT change_pos ; } TPacketCGQuickSlotSwap ; typedef struct SPacketCGRefine { BYTE header ; - BYTE pos ; + UINT pos ; BYTE type ; } TPacketCGRefine ; typedef struct packet_item_del { BYTE header ; - BYTE pos ; + UINT pos ; } TPacketGCItemDel ; typedef struct packet_quickslot_add { BYTE header ; - BYTE pos ; + UINT pos ; TQuickSlot slot ; } TPacketGCQuickSlotAdd ; typedef struct packet_quickslot_del { BYTE header ; - BYTE pos ; + UINT pos ; } TPacketGCQuickSlotDel ; typedef struct packet_quickslot_swap { BYTE header ; - BYTE pos ; + UINT pos ; - BYTE change_pos ; + UINT change_pos ; } TPacketGCQuickSlotSwap ; typedef struct SPacketGCRefineInformation { BYTE header ; - BYTE pos ; + UINT pos ; TRefineTable refine_table ; } TPacketGCRefineInformation ; typedef struct SPacketGCRefineInformationNew { BYTE header ; BYTE type ; - BYTE pos ; + UINT pos ; TRefineTable refine_table ; } TPacketGCRefineInformationNew ;
Client/UserInterface/PythonNetworkStream.h
PHP Code:
- bool SendQuickSlotAddPacket ( BYTE wpos , BYTE type , BYTE pos ); + bool SendQuickSlotAddPacket ( UINT wpos , BYTE type , UINT pos ); - bool SendQuickSlotDelPacket ( BYTE wpos ); + bool SendQuickSlotDelPacket ( UINT wpos ); - bool SendQuickSlotMovePacket ( BYTE wpos , BYTE change_pos ); + bool SendQuickSlotMovePacket ( UINT wpos , UINT change_pos ); - bool SendShopSellPacketNew ( BYTE bySlot , BYTE byCount ); + bool SendShopSellPacketNew ( UINT bySlot , BYTE byCount ); - bool SendRefinePacket ( BYTE byPos , BYTE byType ); + bool SendRefinePacket ( UINT byPos , BYTE byType );
Client/UserInterface/PythonNetworkStreamPhaseGame.cpp
PHP Code:
- bool CPythonNetworkStream :: SendRefinePacket ( BYTE byPos , BYTE byType ) + bool CPythonNetworkStream :: SendRefinePacket ( UINT byPos , BYTE byType )
Client/UserInterface/PythonNetworkStreamPhaseGameItem.cpp
PHP Code:
## Das ganze Packet sollte so aussehen - bool CPythonNetworkStream :: SendShopSellPacketNew ( BYTE bySlot , BYTE byCount ) + bool CPythonNetworkStream :: SendShopSellPacketNew ( UINT bySlot , BYTE byCount ) +{ + if (! __CanActMainInstance ()) + return true ; + TPacketCGShop PacketShop ; + PacketShop . header = HEADER_CG_SHOP ; + PacketShop . subheader = SHOP_SUBHEADER_CG_SELL2 ; + if (! Send ( sizeof ( TPacketCGShop ), & PacketShop )) + { + Tracef ( "SendShopSellPacket Error\n" ); + return false ; + } + if (! Send ( sizeof ( UINT ), & bySlot )) + { + Tracef ( "SendShopAddSellPacket Error\n" ); + return false ; + } + if (! Send ( sizeof ( BYTE ), & byCount )) + { + Tracef ( "SendShopAddSellPacket Error\n" ); + return false ; + } + Tracef ( " SendShopSellPacketNew(bySlot=%d, byCount=%d)\n" , bySlot , byCount ); + return SendSequence (); +} - bool CPythonNetworkStream :: SendQuickSlotAddPacket ( BYTE wpos , BYTE type , BYTE pos ) + bool CPythonNetworkStream :: SendQuickSlotAddPacket ( UINT wpos , BYTE type , UINT pos ) - bool CPythonNetworkStream :: SendQuickSlotDelPacket ( BYTE pos ) + bool CPythonNetworkStream :: SendQuickSlotDelPacket ( UINT pos ) - bool CPythonNetworkStream :: SendQuickSlotMovePacket ( BYTE pos , BYTE change_pos ) + bool CPythonNetworkStream :: SendQuickSlotMovePacket ( UINT pos , UINT change_pos )
Client/UserInterface/PythonPlayer.cpp
PHP Code:
- for ( BYTE i = 0 ; i < QUICKSLOT_MAX_NUM ; ++ i ) + for ( UINT i = 0 ; i < QUICKSLOT_MAX_NUM ; ++ i ) - rkNetStream . SendQuickSlotMovePacket (( BYTE ) dwGlobalSrcSlotIndex , ( BYTE ) dwGlobalDstSlotIndex ); + rkNetStream . SendQuickSlotMovePacket (( UINT ) dwGlobalSrcSlotIndex , ( UINT ) dwGlobalDstSlotIndex ); - rkNetStream . SendQuickSlotAddPacket (( BYTE ) dwGlobalSlotIndex , ( BYTE ) dwWndType , ( BYTE ) dwWndItemPos ); + rkNetStream . SendQuickSlotAddPacket (( UINT ) dwGlobalSlotIndex , ( BYTE ) dwWndType , ( UINT ) dwWndItemPos ); - rkNetStream . SendQuickSlotDelPacket (( BYTE ) dwGlobalSlotIndex ); + rkNetStream . SendQuickSlotDelPacket (( UINT ) dwGlobalSlotIndex ); - void CPythonPlayer :: AddQuickSlot ( int QuickSlotIndex , char IconType , char IconPosition ) + void CPythonPlayer :: AddQuickSlot ( int QuickSlotIndex , char IconType , INT IconPosition )
Client/UserInterface/PythonPlayer.h
PHP Code:
- void AddQuickSlot ( int QuickslotIndex , char IconType , char IconPosition ); + void AddQuickSlot ( int QuickslotIndex , char IconType , INT IconPosition );
So damit verwende ich 12 Slot's
Bild:
Sollte es fragen oder Probleme geben könnt ihr euch gerne melden.
Auch wenn ihr Bug's findet teilt mir diese bitte mit.
Ps: Das ganze wurde ohne Drachensteinalchemie getestet sollte dennoch
gehen.
Den Python part häng ich an.
Virustotal:
@Edit: das noch in der locale_interface.txt nachtragen:
Sucht nach INVENTORY_PAGE_BUTTON_TOOLTIP_1
Und ersetzt alle INVENTORY_PAGE_BUTTON_TOOLTIP_ mit :
INVENTORY_PAGE_BUTTON_TOOLTIP_1 1. Inventar
INVENTORY_PAGE_BUTTON_TOOLTIP_2 2. Inventar
INVENTORY_PAGE_BUTTON_TOOLTIP_3 3. Inventar
INVENTORY_PAGE_BUTTON_TOOLTIP_4 4. Inventar
INVENTORY_PAGE_BUTTON_TOOLTIP_5 5. Inventar
INVENTORY_PAGE_BUTTON_TOOLTIP_6 6. Inventar
INVENTORY_PAGE_BUTTON_TOOLTIP_7 7. Inventar
INVENTORY_PAGE_BUTTON_TOOLTIP_8 8. Inventar
INVENTORY_PAGE_BUTTON_TOOLTIP_9 9. Inventar
INVENTORY_PAGE_BUTTON_TOOLTIP_10 10. Inventar
INVENTORY_PAGE_BUTTON_TOOLTIP_11 11. Inventar
INVENTORY_PAGE_BUTTON_TOOLTIP_12 12. Inventar
Attached Files
python part.rar
(9.5 KB, 307 views)
08/27/2015, 03:57
#2
elite*gold: 8
Join Date: Aug 2015
Posts: 58
Received Thanks: 30
wtf xD thanks
08/27/2015, 04:24
#3
elite*gold: 5
Join Date: Oct 2012
Posts: 290
Received Thanks: 357
wew , that went waaaay far
but nice anyways
08/27/2015, 04:53
#4
elite*gold: 26
Join Date: Oct 2011
Posts: 1,262
Received Thanks: 1,062
wow. useless bullshit.
This is why the small releases thread was a blessing.
Hope this troll gets removed soon.
Regards
08/27/2015, 06:18
#5
elite*gold: 3939
Join Date: Nov 2009
Posts: 2,038
Received Thanks: 2,476
Wenn man die Inventarseiten wenigstens so beschriften könnte wie man es haben will
wäre es viel besser.
Aber so macht es für mich keinen Sinn weil einfach alles durcheinander ist.
Mfg xXDemonenXx
08/27/2015, 08:06
#6
elite*gold: 238
Join Date: Sep 2009
Posts: 2,327
Received Thanks: 1,165
Das ist mal eine gute Idee von Demonen (sollte sich auch Umsetzen lassen).
Ich denke 12 Lagerseiten machen eher Sinn als Inventarseiten.
Aber sonst nett das du es Teilst
08/27/2015, 08:44
#7
elite*gold: 2
Join Date: Jun 2013
Posts: 1,063
Received Thanks: 1,724
Ich frag mich wann wer 100 Seiten rausbringt.
08/27/2015, 08:45
#8
elite*gold: 0
Join Date: Feb 2015
Posts: 306
Received Thanks: 171
ein guter weg ein Messie zu werden xD
wie meine vorposter schon geschrieben haben wären mehrere Lagerseiten sinnvoller gewesen
vielleicht kommt das ja auch noch irgendwann ^^
sonst super Arbeit !
schöne grüße
Kampfzwerg
08/27/2015, 09:02
#9
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,765
Quote:
Originally Posted by
ProfessorEnte
Ich frag mich wann wer 100 Seiten rausbringt.
Quote:
Originally Posted by
ProfessorEnte
Mal gespannt wann wer 10 Seiten raushaut.
I see what you did there ...
Finde es gar nicht schlecht, wenn man weniger will kann man das ja dann ziemlich einfach anpassen.
08/27/2015, 12:58
#10
elite*gold: 56
Join Date: Sep 2011
Posts: 777
Received Thanks: 365
Wow ist auch so krass schwer, dazu unnötig kann jeder in ein paar Minuten wenn man sich die 4 Inventar Seiten einfach mal anguckt.
08/27/2015, 13:28
#11
elite*gold: 0
Join Date: Feb 2015
Posts: 306
Received Thanks: 171
Quote:
Originally Posted by
jubox123
Wow ist auch so krass schwer, dazu unnötig kann jeder in ein paar Minuten wenn man sich die 4 Inventar Seiten einfach mal anguckt.
dann wird es langsam mal zeit das du was sinnvolles releasen tust.
laut deinen Thread Erstellungen kam noch nichts gutes bei raus.
paar PSC umgetauscht, Accs verkauft und so.
lass mal was sehen von dir was uns umhaut.
dann kann man dein Kommentar hier ernst nehmen.
schöne grüße
Kampfzwerg
08/27/2015, 13:28
#12
elite*gold: 1
Join Date: Apr 2014
Posts: 588
Received Thanks: 144
ok.. schon was unnötig oder? also man kann ja jetzt einfach das lager ausm source löschen finde ich. wenn man eh so viele inv. seiten hat brauch man ja kein lager mehr..
2-3 inv seiten + 10 lagerseiten = sinnvoller..
jedoch trotzdem danke das du es teilst, irgendwer wird es brauchen können oder einfach einfügen um zu sagen das er es hat..
08/27/2015, 13:59
#13
elite*gold: 2
Join Date: Jan 2008
Posts: 531
Received Thanks: 234
Quote:
Originally Posted by
xXDemonenXx
Wenn man die Inventarseiten wenigstens so beschriften könnte wie man es haben will
wäre es viel besser.
Aber so macht es für mich keinen Sinn weil einfach alles durcheinander ist.
Mfg xXDemonenXx
Also Versteh ich dich richtig das man den Inventar Seiten einen eigen Namen geben kann? wie z.b. Upp Zeug, Potts usw.?
Quote:
Originally Posted by
ProfessorEnte
Ich frag mich wann wer 100 Seiten rausbringt.
Quote:
Originally Posted by
~> Thalion ッ <~
ok.. schon was unnötig oder? also man kann ja jetzt einfach das lager ausm source löschen finde ich. wenn man eh so viele inv. seiten hat brauch man ja kein lager mehr..
2-3 inv seiten + 10 lagerseiten = sinnvoller..
jedoch trotzdem danke das du es teilst, irgendwer wird es brauchen können oder einfach einfügen um zu sagen das er es hat..
Klar gebe ich dir recht werde auch nie 12 Inventar Seiten verwenden höchstens 4 Aber so hat man eben die möglichkeit damit. Vielleicht kommt ja irgend ein Fun server damit raus. xD
08/27/2015, 14:44
#14
elite*gold: 222
Join Date: Oct 2012
Posts: 2,369
Received Thanks: 3,395
UINT? Ressourcenfressend. (Wenn ich mich nicht irre)
UINT (unsigned int = 4 Bytes / 32 bit /// 0 - 4294967295)
WORD (unsigned short = 2 bytes / 16 bit /// 0 - 65535)
Würde also empfehlen, WORD zu nehmen. (wurd mir selbst auch vorgeschlagen, da ich DWORD als Datentyp nutzte)
08/27/2015, 15:06
#15
elite*gold: 2
Join Date: Jan 2008
Posts: 531
Received Thanks: 234
Quote:
Originally Posted by
Mr. 'Avenue™
UINT? Ressourcenfressend. (Wenn ich mich nicht irre)
UINT (unsigned int = 4 Bytes / 32 bit /// 0 - 4294967295)
WORD (unsigned short = 2 bytes / 16 /// 0 - 65535)
Würde also empfehlen, WORD zu nehmen. (wurd mir selbst auch vorgeschlagen, da ich DWORD als Datentyp nutzte)
Gebe ich dir recht.
Similar Threads
4 Inventar Seiten
03/14/2015 - Metin2 Trading - 8 Replies
#closerequest selbst gelöst
Frage zu 4 Inventar seiten (Kleiner Bug)
12/16/2014 - Metin2 Private Server - 6 Replies
Hallo, und zwar hab eine Kleine Frage
Ich hab nun die 4 Inventar Seiten eingebaut. Allerdings
ist bei mir die Minimap verbuggt.
Screen:
http://puu.sh/drG3O/8f1098562a.jpghttp://puu.sh/d rG3O/8f1098562a.jpg
Das ist seit dem ich die 4 Invi seiten Eingefügt habe.
[HILFE]4 inventar seiten
11/10/2014 - Metin2 Private Server - 7 Replies
Hey leute wollt mal fragen wie ich auf meinen Server 4 Inventar seiten bekomme gibt es ein release dazu oder sonst was möchte auch 4 Inventar seiten auf mein server haben pls help !
4 Inventar Seiten Binary problem
09/21/2014 - Metin2 Private Server - 1 Replies
Moin Com,
Ich möchte gerne eine Bin mit 4 Inventar Seiten benutzen, aber wenn ich sie starten will kommt von windows folgende fehlermeldung
Wir bekomme ich den fehler behoben bei google bin ich nicht fündig geworden
Danke :D
[Bot]Alle 2 Inventar-Seiten öffnen
02/14/2010 - Metin2 Hacks, Bots, Cheats, Exploits & Macros - 9 Replies
Hi,
Ich geb euch hier meinen allerersten Bot ! Also nich so hart sein! Ist mein erster ;) Kritik/Lob ist erwünscht
Achtung Inventar muss offen sein ;)
Funktionen:
Alle sachen im Invi öffnen sobald das Metin Fenster Aktiv ist.
Er öffnet alles was im Invi liegt , d.h er macht auf alles Rechtsklick
All times are GMT +2. The time now is 09:29 .