Tab Menü im inventory???

10/25/2011 03:46 N8Schatten#1
Hi ich habe als ich die sever vorstellungen etwas gesehen was ich ,ehr als cool finde und zwar ein Tab menü fürs invi also mehrere Slots zum items palzieren siehe screen
[Only registered and activated users can see links. Click Here To Register...]

Und wollte fragen ob mir irgendwer sagen kan wie ich das in unseren Sever reinpacken
10/25/2011 03:48 Sedrika#2
Nur über Source, ohne hast du 0 chanse, Ende!
Zudem ist das von Offi.
10/25/2011 08:41 N8Schatten#3
is mir schon klar aber haste nen plan wie man das macht?
10/25/2011 11:43 bloody2009#4
wow das im pserver *__*
wäre echt geil ;D
10/25/2011 13:01 .Haro#5
Dieses Inventory hat kaum ein Server, bzw gibt es Leute die das Tab Inventory irgendwo lokal liegen haben.

Wird dir kaum einer kostenlos machen/herausgeben.
10/25/2011 13:21 N8Schatten#6
Schade genau das hatte ich befürchtet naja fragen kostet ja nichts XD^^

Trozdem danke an alles die geantwortet haben ih lasse es nochma offen fals sich doch noch wer endschlißt es public zu machen
10/25/2011 13:22 Vincitore#7
Ich kann dir nur sagen wie ich es machen würde(Theoretisch).
Ich würde das Fenster per Daisy machen. Dann in der Source gucken wo die Items im Listview geaddet wird. Dies ersetzen durch eine Abfrage des Item Kategorie und im passenden Listview adden.
So würde ich es bei VB.net machen
10/25/2011 15:49 yannickminecraft#8
Quote:
Originally Posted by .Haro View Post
Dieses Inventory hat kaum ein Server, bzw gibt es Leute die das Tab Inventory irgendwo lokal liegen haben.

Wird dir kaum einer kostenlos machen/herausgeben.
Jow ich habs auch schon nachgecodet. Fixx mal in meiner 15 minuten pause .. blender.

Es gibt keinen der das Recoden kann da es einfach zuviel wissen und zeit benötigt.

Quote:
Originally Posted by Vincitore View Post
Ich kann dir nur sagen wie ich es machen würde(Theoretisch).
Ich würde das Fenster per Daisy machen. Dann in der Source gucken wo die Items im Listview geaddet wird. Dies ersetzen durch eine Abfrage des Item Kategorie und im passenden Listview adden.
So würde ich es bei VB.net machen
Gibt aber noch das Problem mit den rumschieben der items etc. So einfach ist das ganze nicht und du müsstest 100th von funktionen umschreiben da sie auf das alte system basieren und deswegen umgeschrieben werden müssen.
10/25/2011 15:56 Yakuzai.#9
Übertreid nicht gleich wieder so >.< Nur weil du es nicht kannst, heißt das nicht, dass es niemand schafft. Die Angestellten von GalaLab sind auch nur Menschen, genau wie wir. Mit ein bischen Zeit + Ahnung ist das kein Problem. Wobei ich nicht sagen möchte, dass ich dafür genung Ahnung hätte.
10/25/2011 16:01 yannickminecraft#10
Quote:
Originally Posted by Yakuzai. View Post
Übertreid nicht gleich wieder so >.< Nur weil du es nicht kannst, heißt das nicht, dass es niemand schafft. Die Angestellten von GalaLab sind auch nur Menschen, genau wie wir. Mit ein bischen Zeit + Ahnung ist das kein Problem. Wobei ich nicht sagen möchte, dass ich dafür genung Ahnung hätte.
Ich urteile nicht darüber weil ich es nicht kann ( hab es noch nie probiert ) sondern weil ich sehe was so alles "gecodet" wird. Es gibt nur einen dem ich das zutraue und das ist Etioom.

Zu deinem beispiel das die Galalabs developers nur Menschen sind: Es sind Menschen die ahnung haben von dem was sie machen. Sie arbeiten auch schon seit Jahren mit dem Source und kennen ihn wohl besser als jeder dödel hier.
10/25/2011 16:05 Vincitore#11
Ich hab ja gesagt nur Theoretisch würde es so gehen. Das es komplizierter ist weiß ich.

Die Programmiere von Gala Lab haben viele System selbst gemacht und wissen wie die funktionieren zu dem haben die bestimmt eine richtige Dokumentation.
10/25/2011 16:06 Krustenkäse#12
Quote:
Originally Posted by yannickminecraft View Post
Jow ich habs auch schon nachgecodet. Fixx mal in meiner 15 minuten pause .. blender.

Es gibt keinen der das Recoden kann da es einfach zuviel wissen und zeit benötigt.



Gibt aber noch das Problem mit den rumschieben der items etc. So einfach ist das ganze nicht und du müsstest 100th von funktionen umschreiben da sie auf das alte system basieren und deswegen umgeschrieben werden müssen.
Theoretisch muss man da gar nicht so viel machen :D
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.

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;
        }
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^^
10/25/2011 16:13 Vincitore#13
Du hast noch die Abfrage der Kategorien vergessen von den Items.

Zu dem muss man die Funktion bearbeiten, die aufgerufen wird, wenn man was einsammelt.
Hab es mir nie angeguckt. Deshalb bin ich mir auch nicht sicher.

Aber wie Krustenkäse schon gesagt hast, man kann sich die Funktionen von den Tabs angucken. Ist das gleiche Prinzip.

Wenn man die Abfrage der Kategorie des Items in der Source macht. Muss man die DB nicht ändern.
10/25/2011 16:29 killerooo#14
Natürlich muss man was in der DB ändern,
könnte es für die interressierten mal posten weil ich den mssql teil bereits geschrieben hatte.
10/25/2011 16:38 Krustenkäse#15
Quote:
Originally Posted by killerooo View Post
Natürlich muss man was in der DB ändern,
könnte es für die interressierten mal posten weil ich den mssql teil bereits geschrieben hatte.
wenn du es so, wie von mir beschrieben machst, dann musst du gar nichts in der DB machen... du hast halt nur ein 4-fach so großeses Inventar, wie normal... d.h. du müsstest vllt im DB-Server die Querysize vergrößern, aber du brauchst keine Querys usw. weil ja das Programm selbst das Inventar in die einzelnen Tabs unterteilt ( alle (MAX_INVENTORY/4)*Index bis (MAX_INVENTORY/4)*(Index+1)) )... außerdem ist es wesentlich komplexer das ganze mit einer Datenbankänderung zu verbinden, denn dazu müsstest du dann nicht nur die Indezes der Items neu programmieren, sodern auch die externen Variablen, wie zB Erweckungen^^