GIldenlager bug

05/24/2015 14:43 DerHeiligeJesus#1
Ich hab mal eine Frage, unszwar kann ich keine Items in das Gildenlger hinzufügen und wahrscheinlich auch nicht herausnehmen, ich versteh aber nicht woran das liegt, benutze roc source.
05/24/2015 18:50 Lumi#2
Hast du davor irgendwelche Änderungen vorgenommen? Steht denn irgendetwas im Error Log?
05/24/2015 19:27 DerHeiligeJesus#3
Es kommt garkein error log, ich will halt ein Item reinziehen und es öffnet sich nichtmal das Fenster wieviel davon.

Edit : Auf jedenfall hab ich einen Fehler gemacht weil mit den roc Source wo nichts verändert ist geht es.
05/26/2015 18:36 DerHeiligeJesus#4
# Problem besteht immernoch und ich weiß nicht wo ich mit der suche anfangen soll.
05/26/2015 18:47 xTwiLightx#5
Nimm nen cleanen Source und mache Änderungen in kleinen Schritten.
Wir können nicht hellsehen und wissen, was du wo geändert hast.
05/26/2015 18:48 DerHeiligeJesus#6
Ja aber in welchen Datei forsch ich da?
05/26/2015 21:34 xTwiLightx#7
Hast du überhaupt schon mal IRGENDWIE Eigeninitiative gezeigt?
  • _Interface\WndGuildBank.cpp/.h (gesamte Dateien)
  • _Interface\WndField.cpp
    • g_DPlay.SendGetItemGuildBank
    • g_DPlay.SendPutItemGuildBank
    • g_pPlayer->GetGuild()->m_GuildBank.GetAtId
    • g_DPlay.SendGetItemGuildBank( (BYTE)( m_Shortcut.m_dwId ), nCost, 1 )
  • Neuz\DPClient.cpp
    • CDPClient::OnPutItemGuildBank
    • CDPClient::OnGetItemGuildBank
    • CDPClient::OnGuildBankWindow
    • CDPClient::SendPutItemGuildBank
    • CDPClient::SendGetItemGuildBank

Benutze einfach einmal deine Birne (also die SUCHFUNKTION von Visual Studio) und SUCHE.
05/27/2015 17:24 DerHeiligeJesus#8
Bin Hauptschüler sorry, nein ich danke dir vielmals :)

Hab rausgefunden woran es liegt

PHP Code:
#ifdef __CAST_DWORD_FIX // Item Hack
void CDPClient::SendPutItemGuildBankBYTE nIdshort ItemNumBYTE p_Mode )
#else // __CAST_DWORD_FIX
void CDPClient::SendPutItemGuildBankBYTE nIdDWORD ItemNumBYTE p_Mode )
#endif // __CAST_DWORD_FIX
{
    
BEFORESENDSOLEarPACKETTYPE_PUTITEMGUILDBANKDPID_UNKNOWN );
    
ar << nId << ItemNum << p_Mode;
    
SENDarthisDPID_SERVERPLAYER );
}

#ifdef __CAST_DWORD_FIX // Item Hack
void CDPClient::SendGetItemGuildBankBYTE nIdshort ItemNumBYTE p_Mode )
#else // __CAST_DWORD_FIX
void CDPClient::SendGetItemGuildBankBYTE nIdDWORD ItemNumBYTE p_Mode )
#endif // __CAST_DWORD_FIX
{
    
BEFORESENDSOLEarPACKETTYPE_GETITEMGUILDBANKDPID_UNKNOWN );
    
ar << nId << ItemNum << p_Mode;
    
SENDarthisDPID_SERVERPLAYER );

aber warum kann ich durch das __CAST_DWORD_FIX dann keine Items mehr ins Gilenlager legen bzw raus nehmen?
05/28/2015 15:49 xTwiLightx#9
Quote:
Originally Posted by DerHeiligeJesus View Post
Bin Hauptschüler sorry, nein ich danke dir vielmals :)

Hab rausgefunden woran es liegt

PHP Code:
#ifdef __CAST_DWORD_FIX // Item Hack
void CDPClient::SendPutItemGuildBankBYTE nIdshort ItemNumBYTE p_Mode )
#else // __CAST_DWORD_FIX
void CDPClient::SendPutItemGuildBankBYTE nIdDWORD ItemNumBYTE p_Mode )
#endif // __CAST_DWORD_FIX
{
    
BEFORESENDSOLEarPACKETTYPE_PUTITEMGUILDBANKDPID_UNKNOWN );
    
ar << nId << ItemNum << p_Mode;
    
SENDarthisDPID_SERVERPLAYER );
}

#ifdef __CAST_DWORD_FIX // Item Hack
void CDPClient::SendGetItemGuildBankBYTE nIdshort ItemNumBYTE p_Mode )
#else // __CAST_DWORD_FIX
void CDPClient::SendGetItemGuildBankBYTE nIdDWORD ItemNumBYTE p_Mode )
#endif // __CAST_DWORD_FIX
{
    
BEFORESENDSOLEarPACKETTYPE_GETITEMGUILDBANKDPID_UNKNOWN );
    
ar << nId << ItemNum << p_Mode;
    
SENDarthisDPID_SERVERPLAYER );

aber warum kann ich durch das __CAST_DWORD_FIX dann keine Items mehr ins Gilenlager legen bzw raus nehmen?
Wahrscheinlich, weil der Server einen DWORD als ItemID statt einem short erwartet und deswegen einfach nichts macht, oder in der Funktion selbst trotzdem noch mit DWORD gearbeitet wird.
Du solltest also in die dazu passende Funktion (-> OnGetItemGuildBank) schauen, was dort für Funktionsargumente stehen.