• Herzlich Willkommen!

    Nach der Schließung von inDiablo.de wurden die Inhalte und eure Accounts in dieses Forum konvertiert. Ihr könnt euch hier mit eurem alten Account weiterhin einloggen, müsst euch dafür allerdings über die "Passwort vergessen" Funktion ein neues Passwort setzen lassen.

    Solltet ihr keinen Zugriff mehr auf die mit eurem Account verknüpfte Emailadresse haben, so könnt ihr euch unter Angabe eures Accountnamens, eurer alten Emailadresse sowie eurer gewünschten neuen Emailadresse an einen Administrator wenden.

D2 in besserer Auflösung zocken

Eimernase schrieb:
@Corni: Die alten und unfertigen Code-Routinen zu SVR's D3D-Treiber kann man noch im PK-Forum finden,man muss halt nur mal in den älteren Posts bissl recherchieren.
Nein, da gibt es nur die alte von Sir_general, wenn du aber Paul Simarey PM'st schickt er dir einen Link zu einer von SVR verbesserten Version ;)
Der fehlt aber auch noch ein Haufen Zeug, das ist dann aber mein Misthaufen ;)
Zusätzlich zum neuschreiben der kompletten Grafikloading-Routinen (für mich besonders interessant die .dt1-Routine :D). da ich aber im Moment mich eher mit dem Level-Code beschäftige, brauche ich noch "etwas" Zeit bis ich mich dadrum kümmere...
 
Freilich fehlt da noch so einiges,ist halt auch nur ein Grundgerüst.

Soweit ich mich erinnere,hatte die Datei SVR auch mal selbst im PK verlinkt,kann aber durchaus sein,das er diesen Link wieder entfernt hatte.....der Thread ist eh schon sehr alt.
Ich selbst hatte sie jedenfalls nicht von Paul sondern direkt von SVR.

Problematisch ist diese Version eigentlich nicht weil dort etliches fehlt,funzen tut sie ja ansich soweit.
Vielmehr wird es eher zum Problem,entsprechende dc6-Dateien zu erzeugen,um zb 24/32bit Farbtiefe verwenden zu können.
Denn dazu ist imho noch kein bekanntes dc6-Tool in der Lage.


btw...alles Gute zum Geburtstag;)
 
Also aus dem Readme meiner Version:
TODO:
Add gamma correction. Will probably require change to D2Direct3d.dll to enable the setting.
Improve render speed. I had to remove some optimizations to make palshifts & light maps work.
Player is not lit by item color property ???
Perspective projection ... Is it worth the effort ?
Develope new gfx format.

Test,test,test ;-)

Also nicht bloß compilieren und freuen ;) Kann aber sein das du nochmal ne andere (neuere) Version hast, meine ist vom 19.03.2004. Und wenn man dann die ToDo einigermaßen abgearbeitet hat kann man auch so gut programmieren, das man mit Allegro oder einer andren Library einen 24/32bit-Image-Konverter schreiben kann. Es ist ja auch der Source von CellConv verfügbar, das könnte man sicher entsprechend erweitern...
edit: und Danke ;)
 
Hi,

@Eimernase
hier ein paar meiner Notizen, auch nirgendwo zu finden ^^
Dir ist aber klar das Xian und ich Dich beim Wort nehmen Runeforge betreffend ?

[statscreen]
Playername
x-pos
6FB39AFC - 05 c1 00 00 00 - add eax,000000c1
y-pos
6FB39AEB - 8d 9c 01 39 fe ff ff - lea ebx,[ecx+eax-000001c7]

classtext
font
6FB398A3 - b9 01 00 00 00 - mov ecx,00000001
y-pos
6FB39A0D - 8d 8c 02 39 fe ff ff - lea ecx,[edx+eax-000001c7]
x-pos
6FB39A25 - 05 37 01 00 00 - add eax,00000137

font für stattexte
6FB396E7 - b9 06 00 00 00 - mov ecx,00000006

display aller statbuttons/grafiken
6FB396D3 - e8 d2 38 f8 ff - call d2gfx_draw_dc6
display statscreen closebutton/grafik
6FB39902

das ganze ist ne recht große Routine und du wirst eigentlich alles zugehörige in der Nähe finden.

Dein Adressen gibt es bei mir übrigens nicht benutzt du relocated dlls ? ich benutze ausschliesslich originale dlls.
Was mich wundert warum brauchst du für jede Auflösung / Jeden Treiber andere Offsets ?? Sollte dem so sein machst Du was falsch oder benutzt nicht den D2 Ureigensten Mechanismus welcher die verschiebungen durch Auflösungsänderungen korrigiert (zumindest bei den meisten Sachen ausser LVLUP und Belt) wie da z.b. wären:

6fbcbef8 - borderframe malus x(800*600 50h) 1024*768-> 70h
6fbcbefc - borderframe malus y(800*600 ffffffc4h) 1024*768-> ffffffach

Mit nutzen dieser Mechanismen gibt es für die Textpositionen usw nur 1 Wert.



Was ich selber noch suchen muss bzw brauche sind die Routinen die die invblöcke auf 10*10 cappen und die die für Equippment zuständig sind, da hatte ich bisher noch keine Zeit zum suchen.

Da das neue Inv doch deutlich größer ist siehts mit 10*10 irgendwie unbenutzt aus ^^ ausserdem muss ich noch den Cube fest ins inv integrieren, sind aber alles Sachen die jetzt nach und nach kommen wenn ich Zeit habe.

Was den D3D Treiber von Sir_General angeht, ich habe nur die originalversion aus dem Forum und kenne die von SVR nicht empfinde aber jede Minute die an Zeit da reingesteckt wird als verschwendet. Warum hat der sonst so geniale Sir_General ausgerechnet das schlechteste Interface aufgebohrt ?
Der einzige gute weg wäre ein Ersatz der D2gfx.dll und daran werde ich zu gegebener Zeit arbeiten um dort alles mit nativem openGL umzusetzen und den ganzen nachfolgenden DLL Rattenschwanz abzuschneiden. Durchaus eine machbare Sache denn es sind im großen und ganzen nur ca 60 Routinen was eigentlich ein Witz ist da die meisten fast nix machen ausser kleine Werte zurückgeben.


Gruß

Seltsamuel
 
Was den D3D Treiber von Sir_General angeht, ich habe nur die originalversion aus dem Forum und kenne die von SVR nicht empfinde aber jede Minute die an Zeit da reingesteckt wird als verschwendet. Warum hat der sonst so geniale Sir_General ausgerechnet das schlechteste Interface aufgebohrt ?
Der einzige gute weg wäre ein Ersatz der D2gfx.dll und daran werde ich zu gegebener Zeit arbeiten um dort alles mit nativem openGL umzusetzen und den ganzen nachfolgenden DLL Rattenschwanz abzuschneiden. Durchaus eine machbare Sache denn es sind im großen und ganzen nur ca 60 Routinen was eigentlich ein Witz ist da die meisten fast nix machen ausser kleine Werte zurückgeben.
Du weißt, das die d2gfx.dll 80 Exports hat, eine relativ kleine fixe import-Tabelle, und nur ein Wrapper ist? Ich habe mich heut etwas eingehender mit der D2Gdi.dll von SG beschäftigt, das ist (für mich als non-GUI)-Programmierer ziemlich ehftiger Tobak :(
Die von "meiner" D2Gdi.dll zurückgegebe Functable (von #10000) ist ziemlich groß...
LPVOID plgFuncTable[]= {
PluginFuncCheckSupport,
PluginFuncInitialize,
PluginFuncRelease,
PluginFunc0C,
PluginFunc10,
PluginFunc14,
PluginFuncBeginScene,
PluginFuncEndScene,
PluginFuncPresent,
PluginFuncCreateBuffer,
PluginFunc28,
PluginFunc2C,
PluginFunc30,
PluginFunc34,
PluginFunc38,
PluginFunc3C,
PluginFunc40,
PluginFunc44,
PluginFunc48,
PluginFunc4C,
PluginFuncGetSize,
PluginFunc54,
PluginFunc58,
PluginFunc5C,
PluginFunc60,
PluginFunc64,
PluginFunc68,
PluginFunc6C,
PluginFuncSetPalette,
PluginFuncSetPaletteTable,
PluginFunc78,
PluginFuncDrawGroundTile,
PluginFunc80,
PluginFuncDrawDC6,
PluginFuncDrawDC6Colored,
PluginFunc8C,
PluginFunc90,
PluginFunc94,
PluginFunc98,
PluginFunc9C,
PluginFuncA0,
PluginFuncA4,
PluginFuncA8,
PluginFuncAC,
D2FillRect, //PluginFuncB0,
PluginFuncB4,
PluginFuncFillRect, // draw box
PluginFuncBC,
PluginFuncLineDDA, // draw line (rain)
PluginFuncClearScreen,
PluginFuncDisplayString,
PluginFuncCC,
PluginFuncD0,
PluginFuncD4
};
und wegen runeforge: Mach was du willst, aber imho braucht es kein 2. Modding-Forum auf deutsch, von wegen genügend deutschsprachigen talentierten Moddern, die sich im CE-Bereich dann uach noch aufteilen. Abgesehen davon ist das Board tot (nachdem es ~3Mal gelöscht und neu aufgesetzt wurde auch kein Wunder) und der Admin einer der am wenigsten flamenden und am freundlichsten Personen ist...

edit: Die D2Gdi hat ihre Fuktionen ja sogarn (in 1.10) per Name und nicht per Ordinal exportiert! Das hat Blizzard (ausnahmsweise :D) mal toll gemacht :)
edit2: ok exportiert ist falsch gesagt, aber irgendwie haben wir all Funktionsnamen der wichtigeren funktionen ;)
 
Hi,

Was die Schnittstelle angeht sind es ca 60 (56) Funktionen die sich die d2gfx importiert
und was die Dokumentation angeht man nehme Sven Labuschs Glidewrapper und sehe alle Exports namentlich, dazu nehme man die offen runterladbare Glide 3.x API und man weiß so ziemlich alles was man brauch. Das ganze würze man mit einem dllproxy der 1. zwischen D2 und der D2gfx.dll liegt und 2. zwischen d2gfx.dll und der glide3x.dll und alle Parameter und Aufrufe wegloggt.

Das mit Xian lass mal meine Sorge sein ich kann nur eines sagen:
Die Runeforge steht jedem offen egal ob er Xian passt oder nicht, was auch Vorraussetzung für das ganze ist. Niemand wird dort gebannt nur weil er was wissen will oder gern was haben möchte. Mir selber ist es bisher nur 1 mal im Leben gelungen gebannt zu werden was mich heute noch tierisch aufregt und das war im PK weil ich als Programmierer mit über 20 Jahren Berufserfahrung die Dreistigkeit besessen habe freundlich nach dem d2mod.dll SDK zu fragen.
Das zum Thema Freundlichkeit.

Unübersichtlicher wie das PK kann man nix mehr machen und auf PlanetDiablo ist sowohl die Serverperformance zum würgen als auch nix wirkliches an Informationen erhältlich.
Was fehlt ist ein übersichtliches Nachschlagewerk über alle bereits erforschten Dinge denn 70% meiner Zeit die wirklich kostbar ist verbrate ich mit Dingen die bestimmt irgendwo schon stehen könnten oder irgendjemand schon irgendwo mal erforscht hat.

Das Projekt wird mit Sicherheit nicht morgen fertig und sich auch über lange Zeit hinziehen
aber dort wird es sowohl die Sourcen meines neuen Modsystems als auch nahezu alle Dinge die ich gefunden oder erforscht habe geben UND ZWAR FÜR JEDEN der es möchte.
Ich habe erst letztes Jahr mit dem D2 Modden angefangen als ich die Snej Mod übernommen habe, aber es steht ausser Frage das ich das noch einge Jahre weitermachen werde.

Gruß

Seltsamuel
 
Seltsamuel schrieb:
Hi,

Was die Schnittstelle angeht sind es ca 60 (56) Funktionen die sich die d2gfx importiert
und was die Dokumentation angeht man nehme Sven Labuschs Glidewrapper und sehe alle Exports namentlich, dazu nehme man die offen runterladbare Glide 3.x API und man weiß so ziemlich alles was man brauch. Das ganze würze man mit einem dllproxy der 1. zwischen D2 und der D2gfx.dll liegt und 2. zwischen d2gfx.dll und der glide3x.dll und alle Parameter und Aufrufe wegloggt.
Danke, hört sich (auch für andres) gut an, von dllproxy habe ich noch nie etwas gehört ;)

Das mit Xian lass mal meine Sorge sein ich kann nur eines sagen:
Die Runeforge steht jedem offen egal ob er Xian passt oder nicht, was auch Vorraussetzung für das ganze ist. Niemand wird dort gebannt nur weil er was wissen will oder gern was haben möchte. Mir selber ist es bisher nur 1 mal im Leben gelungen gebannt zu werden was mich heute noch tierisch aufregt und das war im PK weil ich als Programmierer mit über 20 Jahren Berufserfahrung die Dreistigkeit besessen habe freundlich nach dem d2mod.dll SDK zu fragen.
Das zum Thema Freundlichkeit.
Und ich habe meien einzige Verwarnung von Xian für Rechtschreibung bekommen, und nach ein paar posts im Code-Editing im Keep und 2 PMs mit Nefarius Zugriff auf das NefEx-SDK und noch einige Starthilfe beim coden bekommen, also praktisch umgekehrt wie bei dir...

Unübersichtlicher wie das PK kann man nix mehr machen und auf PlanetDiablo ist sowohl die Serverperformance zum würgen als auch nix wirkliches an Informationen erhältlich.
Was fehlt ist ein übersichtliches Nachschlagewerk über alle bereits erforschten Dinge denn 70% meiner Zeit die wirklich kostbar ist verbrate ich mit Dingen die bestimmt irgendwo schon stehen könnten oder irgendjemand schon irgendwo mal erforscht hat.
Der Keep hat wenigestens fast 100% uptime, india ist regelmäßig down UND löscht den kompletten Foreninhalt und alle Fragen regelmäßig. Beim PK findet man meiner Meinung nach zumindest wenn man sich auf Code Editing einschränkt so ziemlich alles. Auch wenn ich jede unbekannte Funktion halt erstmal da eingebe, weil auf dem Index der funktionsliste einiges fehlt und auch sonst es kommentierte / bekannte Funktionen gibt, diese jedoch nicht auf der Liste sind.

Das Projekt wird mit Sicherheit nicht morgen fertig und sich auch über lange Zeit hinziehen
aber dort wird es sowohl die Sourcen meines neuen Modsystems als auch nahezu alle Dinge die ich gefunden oder erforscht habe geben UND ZWAR FÜR JEDEN der es möchte.
Wie sieht es bei euch mit Sachen zu Client/Server und Levelgeneration aus?
Ich habe erst letztes Jahr mit dem D2 Modden angefangen als ich die Snej Mod übernommen habe, aber es steht ausser Frage das ich das noch einge Jahre weitermachen werde.


Gruß

Seltsamuel

inzwischen sind wir zwar vom eigentlichen Thema weit entfernt, aber egal :D
MfG
Corni
 
Seltsamuel schrieb:
Hi,

@Eimernase
hier ein paar meiner Notizen, auch nirgendwo zu finden ^^
Dir ist aber klar das Xian und ich Dich beim Wort nehmen Runeforge betreffend ?

[statscreen]
Playername
x-pos
6FB39AFC - 05 c1 00 00 00 - add eax,000000c1
y-pos
6FB39AEB - 8d 9c 01 39 fe ff ff - lea ebx,[ecx+eax-000001c7]

classtext
font
6FB398A3 - b9 01 00 00 00 - mov ecx,00000001
y-pos
6FB39A0D - 8d 8c 02 39 fe ff ff - lea ecx,[edx+eax-000001c7]
x-pos
6FB39A25 - 05 37 01 00 00 - add eax,00000137

font für stattexte
6FB396E7 - b9 06 00 00 00 - mov ecx,00000006

display aller statbuttons/grafiken
6FB396D3 - e8 d2 38 f8 ff - call d2gfx_draw_dc6
display statscreen closebutton/grafik
6FB39902

das ganze ist ne recht große Routine und du wirst eigentlich alles zugehörige in der Nähe finden.

Dein Adressen gibt es bei mir übrigens nicht benutzt du relocated dlls ? ich benutze ausschliesslich originale dlls.
Was mich wundert warum brauchst du für jede Auflösung / Jeden Treiber andere Offsets ?? Sollte dem so sein machst Du was falsch oder benutzt nicht den D2 Ureigensten Mechanismus welcher die verschiebungen durch Auflösungsänderungen korrigiert (zumindest bei den meisten Sachen ausser LVLUP und Belt) wie da z.b. wären:

6fbcbef8 - borderframe malus x(800*600 50h) 1024*768-> 70h
6fbcbefc - borderframe malus y(800*600 ffffffc4h) 1024*768-> ffffffach

Mit nutzen dieser Mechanismen gibt es für die Textpositionen usw nur 1 Wert.



Was ich selber noch suchen muss bzw brauche sind die Routinen die die invblöcke auf 10*10 cappen und die die für Equippment zuständig sind, da hatte ich bisher noch keine Zeit zum suchen.

Da das neue Inv doch deutlich größer ist siehts mit 10*10 irgendwie unbenutzt aus ^^ ausserdem muss ich noch den Cube fest ins inv integrieren, sind aber alles Sachen die jetzt nach und nach kommen wenn ich Zeit habe.

Was den D3D Treiber von Sir_General angeht, ich habe nur die originalversion aus dem Forum und kenne die von SVR nicht empfinde aber jede Minute die an Zeit da reingesteckt wird als verschwendet. Warum hat der sonst so geniale Sir_General ausgerechnet das schlechteste Interface aufgebohrt ?
Der einzige gute weg wäre ein Ersatz der D2gfx.dll und daran werde ich zu gegebener Zeit arbeiten um dort alles mit nativem openGL umzusetzen und den ganzen nachfolgenden DLL Rattenschwanz abzuschneiden. Durchaus eine machbare Sache denn es sind im großen und ganzen nur ca 60 Routinen was eigentlich ein Witz ist da die meisten fast nix machen ausser kleine Werte zurückgeben.


Gruß

Seltsamuel

:hy:

....na das ist nice,thx schonmal dafür.
Freilich stehe ich zu meinem Wort was die Runeforge angeht...Xian habe ich schließlich auch vor etlicher Zeit mal mein Wort zwecks Unterstützung für FK gegeben und stehe da auch heute noch zu;)

Die von mir benannten obigen Adressen habe ich halt durchs "attachen und breaken" gefunden,also schon echte Speicheradressbereiche.
Tjo,gute Frage warum ich da unterschiedliche für die Auflösungen habe,sie sind jedenfalls da und werden auch abgearbeitet vom Spiel als ich dort mal einige Werte testweise verändert hatte.

Die Routinen für die Invfelder müssten sich eigentlich direkt an den Statusbildschirm anschließen,es ist ja die gleiche dc6-Datei (abgesehen vom 2.Weaponslot-Overlay und goldcoin),sämtliche derartige Elemente werden immer von "top left" -> "right bottom" abgearbeitet.
Das heißt,nach dem "Close-Button" vom Statusscreen müßte in unmittelbarer nähe dann der invscreen folgen.

Die Invfelder kannst du aber auch in der inventory.txt verschieben,außer du hast vor jedem Chartyp nen eigenes zu verpassen.....dann muß freilich ne neue Routine a la Skilltree-dc6's rein.
Für 1.11 hab ich da allerdings auch noch nicht groß nach gesucht,da ich mich momentan noch mit andren dll's wie d2launch usw befasse...die ganzen Changes am Menüsystem sind halt ziemlich zeitaufwendig und ich möchts schon sehr genau machen.

Für 1.10 hätte ich zumindest diesbezüglich nen Wink mit dem Zaunpfahl,den man dementsprechend nur noch für 1.11 anpassen müßte.

hmm,seltsam...ich hab mein jetziges Inventar auf 14x10 Felder aufgezogen,was reibungslos und ohne zusätzliche Changes funzt.Allerdings muß ich auch sagen,das ich die Feldgröße von 28x28 auf 20x20 gesenkt habe,der Border fällt bei mir zb komplett raus.
Der nimmt eh nur unnötigt Platz weg den man sinnvoller nutzen kann(78px in der Breite nehm ich doch gerne mit),zudem werden die oberen 3 Pixelreihen eh immer abgeschnitten(der Border beginnt inGame also erst ab der 4.horizontalen Reihe)......beim Panel übrigens auch,nur da sinds die letzten 8 vertikalen Reihen auf der rechten Seite.


Was den D3D-Treiber angeht,ich hab mich damit zuletzt letztes Jahr mal bissl auseinandergesetzt,seitdem eigentlich nicht mehr,da eine Auflösungserhöhung auch erstmal keine Priorität auf meiner ToDo-Liste genießt.


CorniI schrieb:
Wie sieht es bei euch mit Sachen zu Client/Server und Levelgeneration aus?

Momentan ein Bereich,der noch jungfräulich ist.Immer eins nach dem andren:)
 
Nein, mir geht es nicht, was IHR auf der haben-Seite habt sondern was ich posten darf :D Also darf man das in der RF/hier?
 
Ach,die Schnarchnase ist auch mal wieder hier??


btw....hab ich Tomaten auf den Augen oder muß ich mir schon widda nen neuen Acc bei deiner Forge reinpfeifen?
 
Hi,

@Eimernase
in 800*600 hab ich auch keinen Border aber in 1024*768 weil ich mir ersparen wollte 2 neue UIs einbauen zu müssen hab ich mir gedacht nimm einfach vorhandene Mechanismen und mach aus 640*480 die 800*600 und aus den 800*600 die 1024*768 (extra die Mehrarbeit für 1024 um die aspekt Ratio zu erhalten von 4:3).

Das läßt sich prima über die vorhandenen Optionen umschalten Nur die UI Display Routinen mussten neu denn wenn man nachrechnet brauchte D2 vorher nur 4 Cells um die Seite aufzubauen zu können und bei meiner Auflösung brauchts jetzt 6 Cells pro Seite. Das ist alles schon drin und funzt auch so. Ich kann ja die Woche mal nen bisschen Werbung hier machen und Screens Posten :-)

Tjo ich komme nicht über ein Raster von 10*10 (28*28 Felder) im Inv und Stash drüber (oder muss mal schauen ob ich mich irgendwo vertippt habe ^^) Cube ist kein Problem weil ich den wieder rapide verkleinert habe (keine lust mehr den als Müllkippe missbraucht zu sehen). Das Inv soll nicht für jeden Char anders jedoch soll 1. der Cube fest ins UI und 2. ein Teil des Inv nicht mehr für Charms funzen sondern nur noch als Lagerraum (ja die Idee ist von mir und bis ins PK geleakt ^^)

Durch die immense Vergrößerung von Stash und Inv musste ich ebenfalls das 8K Problem fixen (noch nicht getestet aber denke das ist erledigt) wenn ich die Tests abgeschlossen habe werde ich das vermutlich auch auf der Forge Posten.

@Cornil
Client Server hab ich nur das nötigste was ich bisher gebraucht habe und Levelgeneration schon etwas da habe ich vor mir nahezu unendlich Levelspace zu generieren und nen passenden Ansatz dazu ^^ aber das ist noch nicht stabil genug um verkündet zu werden.

Gruß

Seltsamuel
 
Jo,unter 1024x768 isses verständlich,bissl Pixelarbeit halt sparen.

Ein leidiges Thema mit Inv's voller Charms....war in JM auch sehr oft so und sorgte oft genug für abstruse Abstürze,Overflows und was weiß ich noch alles.

Ich werde zwar in LiE mein Stash nicht entssprechend gliedern das ich dies damit verhindern könnte,allerdings wirds in LiE aller Vorraussicht nach eh keine Charms geben,weil diese viel zu schnell ein Balancing verzerren können.
Dafür wird es anderweitige Objekte halt geben,die aber am Char selbst getragen werden....also nur 1x.

So geh ich von vornherein derartigen Problemen aus dem Weg,die zb durch diverse Capgrenzen auftreten können (Overflows zb).
Was den Cube angeht bin ich den gleichen Weg gegangen,das Teil wird in so gut wie jeder Mod größtenteils als Müllhalde genutzt.
Ich bin sogar am überlegen,ob ich den nicht sogar auf 4x4 Felder beschränke....langt eigentlich allemal für alle Arten von Rezepturen.

bzw....willst du für den Cube ein neus Invfeld integrieren um diesen fest zu verankern oder eher ein vorhandenes "missbrauchen"?
 
Client Server hab ich nur das nötigste was ich bisher gebraucht habe und Levelgeneration schon etwas da habe ich vor mir nahezu unendlich Levelspace zu generieren und nen passenden Ansatz dazu ^^ aber das ist noch nicht stabil genug um verkündet zu werden.
Mehr als 1k Levels gehen (definitiv) nicht, ich müsste mal schauen ob das bei mir jetzt geht, ich hab mich mal damit beschäftigt, Die Worldspace-Limits kann man (anscheinend) relativ leicht auf 16xxx anheben, der wird teilweise mit signed short berechnet. Nur Portale (tp's und rote) crashen bei mir definitiv. Du musst bei dir hauptsächlich die Sende-und Empfangsroutinen für die Packete type7 und 8 neuschreiben (jeweils ~10 Zeilen), so dass du das packet von
//used by the lvladd etc packets
struct levelCoordMsg
{
BYTE type; // +0
WORD x; // +1
WORD y; //+3
BYTE lvlNo; //+5
};

nach
//used by the lvladd etc packets
struct levelCoordMsg
{
BYTE type; // +0
WORD x; // +1
WORD y; //+3
//changed!!!
WORD lvlNo; //+5
};
bekommst. Auch bei Portalen ist das Hauptproblem, das hier die lvlId als BYTE und nicht als WORD abgespeichert wird. Warum ihr unbedingt ein riesiges INventar wollt, dann aber es wieder für charms unbenutzbar machen wollt, verstehe ich nicht (außerdem, wie macht man das dem user klar, das er hier keine charms platzieren kann?)
@Xian: Irgendwann mal ein (großer) Haufen Code zur Levelgeneration, besonders Outdoorlevels.
MfG
Corni
 
edit: Ich hab ne tolle weiße seite bekommen, deshalb dopelpost
und beim editieren auch...
 
Hi,

@Eimernase
mit dem Cube wäre die beste Idee den fest in die Grafik einzubauen und einen Mausbereich drüberzulegen der bei rechtsklick den pspell losschickt. Das würde verhindern das den irgendjemand unter welchen Umständen auch immer wieder entfernt oder bewegen kann.
würde auch die arbeit abnehmen den erstmal dem Startchar zu geben und initial zu positionieren.
Zusätzlich muss ich mir noch ein neues Equippmentfeld machen wo ein Klassenspezifischer Slot reinkommt. Auf die vorhandenen kann ich nicht verzichten ergo muss ich das neu machen(ich weiß ich muss immer den schmerzvollen Weg gehen ^^).

Was die Charms angeht wird wohl das inv farblich etwas unterteilt damit man sieht wo Charms gehen und wo nicht. Dazu muss ich mir mal die Routine suchen welche die Items ins Inventory Plaziert denn die kenne ich noch nicht (Routine soll dann die x/y Position die ja im Item gespeichert wird für die Entscheidung zurateziehen eventuell lassen sich auf diese Weise auch neue Slots machen). Hauptgrund ist bei mir nicht Stabilität sondern Balancing (meine jetzt die Charms).

@Cornil
Tjo wenn man normal denkt ist wohl bei 1024 schluss und 256 wenn man TPs braucht. Wenn man jedoch ein wenig komplexer denkt gibt es eine Möglichkeit die so simpel und effektiv ist das es fast unglaublich ist jedoch etwas Verwaltungsaufwand und "um die Ecke denken" erfordert.
Wir wissen wo der Levelcode ist, wir können aktübergreifend TPs benutzen und Chars bewegen
wir wissen wie man MPQs zur Laufzeit lädt und auch wieder entlädt warum ist noch niemand darauf gekommen das zu kombinieren? ich könnte theoretisch für jeden level die Levelspace aller 5 Akte benutzen indem ich in der Levelroutine jedesmal ne neue MPQ laden/entladen lasse. Dieser Ansatz ist nur für Multiplayer ziemlich schwierig zu handhaben und da kaue ich im moment noch etwas dran wobei ich nicht pro level das ganze haben möchte sondern "nur" pro Akt. Was sich auf jeden Fall simpel umsetzen läßt mit diesem Ansatz ist eine neue Schwierigkeitsstufe welche es in Snej geben wird. Man muss nur den Joincode verändern damit
dort eigene Kriterien zum Joinen abgefragt werden denn effektiv hat derjenige immernoch Schwierigkeitsstufe Hell aber es muss zusätzlich noch der Status eines Items abgefragt werden welche MPQ geladen werden soll und welche nicht und ob derjenige der Joinen will den neuen Kriterien ebenfalls entspricht oder nicht. Gegebenenfalls muss man das so machen das man zum wechseln des "Aktes/Levels" ein neues Game erstellen muss um Multiplayer in den Griff zu kriegen ^^ wobei dann dieser Akt/Level so groß ist wie vorher alle 5 zusammen. Bei Unterscheidung anhand eines Items hat man den gesammten Wertebereich eines Stats zur Verfügung und ich glaube so viele Level kann man sich garnicht ausdenken ^^

PS: Wo ich Interesse dran hätte wäre der Maze Code denn eigentlich gehört der mal tüchtig überarbeitet selbst D1 war mehr random als D2. Aso und die worldspace an sich ist ja keine Worldspace sondern lediglich ein Bereich für die Automaps. Würde man die deaktivieren hätte man vollkommen freie hand beim Plazieren oder ?

Gruß

Seltsamuel
 
Also: worldspace: Das kannst du nicht deaktivieren, da die Autiomaps irgendwo hin gezeichnet werden, nämlich auf die Layer des Worldspace. Den kannste aber von maximum 5200X3200 auf den Wertebereich eines signed short oder, wenn du mehr Code findest, evtl auch auf den eines unsigned short bringen. Ich habe gestern/vorgestern im Keep mal Bilder des world/actspaces von allen 5 Akten gepostet, im Worldspace-thread in Map Editing. Die Bilder ahben alle die Auflösung 5200x3200 und sind schon ziemlich leer, also kannst du dir ja vorstellen, was mit 32767x32767 möglich ist^^
Argh dein Post nochmal genauer gelesen: GANZ freie Hand hast du nicht, im Automap wird das als (signed) short behandelt, im Levellinking Code (Outdoor) als int oder DWORD (int ist sicherer, da auch subtrahiert wird, um festzustellen, ob Levels überlappen)
Den Code zum zeichnen der Maps kann ixch dir schicken, dass sind 20Zeilen quick&dirty mit Allegro...
Bei Portalen ist auch bei 1024 Schluss, es ist nur komplizierter, und da habe ich den Dreh noch nicht raus, und da ich erstmal die 256 vollmache, bevor ich mich da ein paar Stunden hinsetzte und meinen Portalcode entbugge lass ich es erstmal dabei ;). Anderer Code ist mir da wichtiger :)
@Maze: Gib mir 5Minuten, dann hast du eine PM mit dem Handler, der die Spalte DrlgType auswertet, bekommst gleich ne PM ;) Musste nur einiges an Strukturen mappen, die drlg-Strukturen haben sich von 1.10 auf 1.11b massiv geändert (zumindest die Haupt-Strukturen). Ich habe mir heute mal GANZ kurz den Mazehandler in 1.10 angeschaut, da ist (mit dem ganzen automatischem Inlinedreck) eine _SEHR_ lange Funktion draus geworden, ich amche erstmal meine Outdoorlinker fertig bevor ich mich dem Mazecode zuwende ;)
MfG
Corni
 
Hi,

danke, ich bin im Moment noch an UI Änderungen im gesammten Frontbereich,
denke aber das ich über die Feiertage zumindest mal in den Mazecode reinschauen werde um mir ein Bild zu machen.

Bevor ich an Levelcode gehe möchte ich erstmal den Invcode analysieren und modifizieren da wären so Sachen wie animierte Items, neue Itemslots der TPbook/scroll Bug auf Realm, abgeteiltes Inv für Charms , neue Cubeitems (Items mit INV) usw noch zu bearbeiten incl. schlussendlich eigener Saveroutine und neuem Questcode.

Wenn ich Xian richtig verstanden habe wird die Forge kein Blatt vor den Mund nehmen was Netzwerk und Client/Server Routinen betrifft was ich nur befürworten kann, denn Snej ist und bleibt immer eine Realmmod und dazu müssen auch Änderungen am Gameserver besprochen werden welche im Moddingcontext sowieso inkompatibel mit Bnet sind und dort (durch Einsatz des Warden der auf privaten Realms nicht interessiert sofort erkannt werden können und zum Bann führen).

Ich denke jedenfalls das interessante Tage (Wochen/Monate/Jahre?) kommen werden.

Gruß

Seltsamuel
 
animierte Items gibt es im PK nen thread mit dem 1.10 Code, da wird einfach der Framecount der DC6-atei nicht erhöht ;)
Wegen gameserver: Wäre es nicht sinnvoller, denjenigen der die 1.11b-Implemenation geschrieben hat zu fragen, ob er euch den ourcecode gibt/ihn unter GPL/whatever veröffentlicht?
Questcode hat es im Keep ne ganze Menge, von dem was ich mitgekriegt habe werden neue Quests dort aber nur von NPCs vergeben und es exisitiert maximal ein Storybook als Questlog, also Mainstoryline bleibt (codemäßig) ziemlich unverändert, dafür gibts halt deren neue QuestAPI (bzw hat da jeder ne eigene :D).
Viel Spaß noch mit den Saveroutinen, das ist laut Nefarius ein ziemlich großer Brocken :p
Ich beschäftige mich grad mit dem AI-Code endlich mal etwas, das nicht so kompliziert (und frustrierend) ist wie mein Outdoor-Code...
MfG
Corni
 
Hi,

also leider gibt es zu animated inventory keinerlei Offsets oder Hinweise.
Niemand hat da was veröffentlicht. Es gibt eine Testversion eines D2Mod Plugins die das für 1.10 ermöglicht jedoch nichts als Dokumentation oder Source. Für 1.11b ist schon garnix in diese Richtung zu finden es sei denn ich bin blind auf beiden Augen ^^.

Was den GS betrifft ist in diese Richtung nichts zu machen, wer sich da auskennt weiß das nur Onlyer und Faster die Sourcen besitzen und die sitzen in China und wurden von Blizzard verklagt (BnetD Projekt). Die 1.11b GS Version ist eine binär gehackte 1.10 Server Version welche zusätzlich noch erweitert wurde. An Sourcen ist da nicht zu denken wobei die frage sowieso ist ob die GS Routinen überhaupt für den TPBook Bug verantwortlich sind oder Routinen in den D2 Dlls die vom GS genutzt werden (deutlich warscheinlicher).



Gruß

Seltsamuel
 
Zurück
Oben