Freelancer ontwikkelaar: Ronan C. P. Lana
Credits moeten ook gegeven worden aan Nexon(Duh!), de originele MapleSolaxia staff en andere colaborators, aangezien slechts enkele veranderingen/patches op het spel zijn toegepast door mijzelf, waarbij sommige afweken van de originele v83 patch inhoud.
Met betrekking tot distribueerbaarheid en gebruik van de hier gepresenteerde code: zoals het al eerder was, is deze MapleStory server open-source. Daarmee wordt bedoeld dat iedereen vrij is om de inhoud te installeren, te gebruiken, te wijzigen en te herdistribueren, zolang er geen commercie bij betrokken is en de credits naar de originele makers gehandhaafd worden binnen de codes.
Dit is een NetBeans 8.0.2 Project, dat gebouwd en gedraaid MOET worden onder JDK/JRE 7 om goed te draaien. Dit betekent dat het gemakkelijker is om het project te installeren door de server project map te openen in NetBeans’ IDE. Eenmaal geinstalleerd, bouw dit project op je machine en draai de server met de “launch.bat” applicatie.
In dit project zijn veel gameplay-kwesties die voortkwamen uit de originele WZ files en de server sources gedeeltelijk of geheel opgelost. Het gebruik van de bewerkte WZ’s en de server-side wz.xml bestanden zou van het grootste belang moeten zijn bij het omgaan met dit geval van private server, om het op zijn volle potentieel waar te nemen. Mijn mening, dat wel! Zie “README_wzchanges.txt” voor meer informatie over wat er veranderd is aan Nexon’s v83 WZ files.
Het hoofddoel van dit project is om zo goed mogelijk te proberen te recreëren wat ooit het originele MapleStory v83 was, en daarbij wat smaken toe te voegen die de gameplay wat opleuken. Met andere woorden, om te streven naar het beste van het MapleStory van die tijd.
Download items
Server bestanden: https://github.com/ronancpl/MapleSolaxiaV2
Client-bestanden & algemene hulpmiddelen: https://drive.google.com/drive/folders/0BzDsHSr-0V4MYVJ0TWIxd05hYUk
Donatie
Als je het leuk vond wat je op het project hebt gezien, doneer dan een kleinigheidje als steuntje in de rug voor mijn bijdragen aan de ontwikkeling van Maple.Paypal: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3K8KVTWRLFBQ4
Voorbereiding van de omgeving
De volgende link leert je hoe je een MapleStory v83 private server installeert, maar het verschilt van wat hier wordt gebruikt: http://forum.ragezone.com/f428/maplestory-private-server-v83-741739/
Gebruik deze link ALLEEN ALS EEN ORIËNTATIE over waar de dingen hier dubbelzinnig beginnen te worden.
Installeer eerst alle algemene tools die nodig zijn om de server te draaien:
- WampServer2.0i.exe -> ontvanger van de server.
- hamachi.msi -> gebruikt voor het opzetten van een tunneling route voor de server/client communicatie.
- mysql-query-browser-1.1.20-win.msi -> MySQL server component, zal de server’s DB op te slaan.
Installeer nu de Java 7 Development Kit:
- jdk-7u79-windows-x64.exe
- netbeans-8.0.2-javase-windows.exe -> Het is een NetBeans project, gebruik andere IDE op eigen risico.
Overnietig wanneer daarom wordt gevraagd de JAR bestanden onder “jce_policy-7/UnlimitedJCEPolicy” in deze Java mappen:
- C:
- C:\Program FilesJava\jre7\lib
- C:\Program FilesJava\jre7\lib\ext
- C:\Program FilesJava\jre7\lib\security
- C:\Program FilesJava\jdk1.7.0_01\lib
- C:\Program Files\Java\jdk1.7.0_01\jre\lib
- C:\Program Files\Java\jdk1.7.0_01\jre\lib\ext
- C:\Program Files\Java\jdk1.7.0_01\jre\lib\security
Nu de tools zijn geinstalleerd, test of ze werken.
Voor WampServer:Als u klaar bent met de installatie, start het dan en u zult het Wamp icoontje zien in de rechter benedenhoek.Klik er met de linker muisknop op en klik op ‘Put Online’.In het geval van ORANJE icoon, verander poort 80 in “httpd.conf” naar een andere, omdat het botst met een standaard Windows poort.Klik er vervolgens weer met de linker muisknop op en klik op ‘Start All Services’.Het Wamp icoon moet er helemaal groen uitzien (als het oranje of rood is, heb je een probleem).
Voor Hamachi:Probeer het te openen. Zo simpel is het. Hamachi is echter optioneel. Je hoeft Hamachi niet te installeren als je de server alleen voor gebruik op je eigen machine wilt maken. Echter, als je andere spelers toegang wilt geven tot je server, overweeg dan om port-forwarding methodes te gebruiken.
De SERVER installeren
Zet de “MapleSolaxia” map op een plaats van je voorkeur. Aanbevolen wordt “C:\Nexon\MapleSolaxia”.
Instellen van de SQL: open MySQL Query Browser, en definieer deze parameters bij het opstarten en klik OK:Server Host: localhostPort: 3306Username: root
Nu moet het VOORZICHTIG gedaan worden:
- Bestand -> Script openen…. -> Blader naar “C:\NexonMapleSolaxia\sql” -> db_database.sql, en voer het uit.
- File -> Open Script… -> Blader naar “C:\Nexon\MapleSolaxia\sql” -> db_drops.sql, en voer het uit.
Nu is het OPTIONEEL, je hoeft het niet uit te voeren als je niet wilt, omdat het gewoon een aantal NPC winkels zal veranderen om een aantal nieuwe goederen, niet aanwezig in het originele MapleStory, te verkopen:
- File -> Open Script…. ->Blader naar “C:\Nexon\MapleSolaxia\sql” -> db_shopupdate.sql, en voer het uit.
Aan het einde van de uitvoering van deze SQL’s, zou je een database schema geïnstalleerd moeten hebben met de naam “maplesolaxia”. REGISTER JE EERSTE ACCOUNT om in-game te gebruiken door handmatig een entry te maken in de tabel “accounts” in die database met een login en een wachtwoord.
Configureer het IP dat je wilt gebruiken voor je MapleStory server in “configuration.ini” bestand, of stel het in als “localhost” als je het alleen op jouw machine wilt draaien. Als alternatief kun je het IP gebruiken dat door Hamachi gegeven is om op een Hamachi netwerk te gebruiken, of je kunt een niet-Hamachi methode van port-forwarding gebruiken. Geen van beide zal hier worden benaderd.
Nu NetBeans openen, en kies voor Open een project… Selecteer dan de “MapleSolaxia” map, dat zou al een project moeten zijn dat door NetBeans herkend wordt. Als dat niet zo is, heb je een probleem.
Binnenin het project, kun je wat code fouten tegenkomen. Dit gebeurt omdat u de “cores” van het project nog niet heeft ingesteld. Vanuit de project hiërarchie, klik met de rechter muisknop op het project en selecteer “Los Project Problemen Op”. Zoek de “cores” map in de root directory van dit project en configureer handmatig de ontbrekende bestanden met de bestanden die daar staan.
Selecteer tenslotte “Clean and Build project” om het JAR bestand voor de MapleStory server te bouwen. Als dat klaar is, zorg er dan voor dat zowel WampServer als Hamachi aan staan en werken, en voer dan “launch.bat” uit op de root van het project. Als deze actie geen fouten heeft opgeleverd, is je MapleStory server nu online.
Installeren van de CLIENT
De setup van de client is vrij simpel:
- Vanuit “ManagerMsv83.exe”, installeer MapleStory in de map van je voorkeur (b.v. “C:NexonMapleStory”) en volg de instructies.
- Als je klaar bent, wis dan deze bestanden: “HShield” (map), “ASPLauncher.exe”, “MapleStory.exe” en “patcher.exe”.
- Uitpakken in de client map de “localhost.exe” van Localhostv83.
- Overschrijf de originele WZ bestanden met de bestanden uit de “client_wz” map op de Google Drive.
Als u niet “localhost” gebruikt als het doel IP in het configuratiebestand van de server, moet u “localhost.exe” HEX-EDITEN om uw IP op te halen. Spoor alle IP-locaties op door te zoeken naar “Text String” “127.0.0.1”, en pas de wijzigingen toe waar het past.
Om te hex-editen, installeer de Neo Hex Editor van “free-hex-editor-neo.exe” en volg hun instructies. Eenmaal klaar, open “localhost.exe” voor bewerking en overschrijf de IP waarden onder de 3 adressen. Sla de wijzigingen op en sluit de editor af.
Open de “localhost.exe” client. Als het programma op geen enkele manier is geopend, en het controleren van que server log je ping is geluisterd en je gebruikt Windows 8 of 10, kan het waarschijnlijk een compatibiliteitsprobleem zijn. Pak “lolwut.exe” uit “lolwut-v0.01.rar” en plaats het in de MapleStory client folder (“C:Nexon\MapleStory”). Je “localhost.exe” eigenschap instellingen moeten de volgende zijn:
- Uitvoeren in compatibiliteits modus: Windows 7;
- Uitgeschakeld gereduceerde kleurenmodus;
- 640 x 480 resolutie;
- Uitgeschakeld display uitschakelen bij hoge DPI instellingen;
- Uitvoeren als administrator;
- Openen van “lolwut.exe”, gebruik Fraysa’s methode.
Belangrijk: mocht de client geweigerd worden om verbinding te maken met de spelserver, dan kan dat komen door problemen met de firewall. Ga naar het einde van dit bestand om verder te gaan met het inschakelen van deze verbinding met de firewall van de computer. Als alternatief kan men de firewall deactiveren en proberen de client opnieuw te openen.
Belangrijke opmerking over het bewerken van de CLIENT
Gebruik de XMLs van de server NIET om ze opnieuw te importeren in het WZ van de client, dit zal achteraf bugs veroorzaken.
- Gebruik in plaats daarvan HaRepacker 4.2.4, encryptie “GMS (oud)”.
- Open de gewenste WZ voor bewerking en, USING THE UI, maak de gewenste veranderingen.
- Sla de gewijzigde WZ op, overschrijf de originele inhoud in de client folder.
- Finitief, RE-EXPORTEER (“Private Server…” exporteer optie) de gewijzigde XML’s in de server’s WZ.XML bestanden, waarbij de oude inhoud wordt overschreven.
Deze stappen zijn BELANGRIJK om de synchronisatie tussen de server en client modules te behouden.
Als voorbeeld van client WZ bewerking, beschouw het MobBookUpdate project dat ik heb ontwikkeld, voor het updaten van alle gerapporteerde drop data van de mobs in het spel gebaseerd op de huidige drop data in de database:
- Open het MobBookUpdate project op NetBeans, gesitueerd op “C:\Nexon\MapleSolaxia\MobBookUpdate”, en bouw het.
- Kopieer naar de submap “lib”, het bestand “MonsterBook.img.xml”. Dit is van het originele WZ v83.
- Plak het in de “dist” submap.
- Binnen “dist”, open de commando prompt door alt+rechts klik daar.
- Uitvoeren “java -jar MobBookUpdate.jar”. Het zal een “MonsterBook_updated.img.xml” bestand genereren.
- Op het laatst, overschrijf de “MonsterBook.img.xml” op “C:Nexon\MapleSolaxia\wz\String.wz” met dit bestand, hernoem het terug naar “MonsterBook.img.xml”.
Op dit punt, de server-side Monster Book is bijgewerkt met de huidige status van de drop data van de database. Open dan HaRepacker 4.2.2 en laad “String.wz” van “C:NexonMapleStory”. Drop de “MonsterBook.img” node door het te verwijderen uit de hiërarchie boom, dan (in tegenstelling tot wat normaal zou moeten gebeuren!) importeer de server’s “MonsterBook.img.xml”.
Denk eraan dat dit absoluut gevaarlijk is als het onvoorzichtig wordt gedaan. Zodra de MonsterBook.img bevat geen client-specifieke gegevens in zijn node inhoud, het importeren van de XML veroorzaakt geen kwaad op alle. Probeer echter geen nodes uit WZ bestanden te verwijderen/importeren, omdat dit gegevensverlies kan veroorzaken. Gebruik in plaats daarvan de HaRepacker’s UI om de veranderingen aan te brengen.
Bewaar de veranderingen en overschrijf de oudere WZ op de MapleStory client folder.
Portforwarding the SERVER
Om portforward te gebruiken, moet je toestemming hebben om dingen op de LAN router te veranderen. Open uw router met de Internet browser. URL’s variëren naargelang de fabrikant. Om het te ontdekken, open de commando prompt en type “ipconfig” en zoek naar het “default gateway” veld. Het IP dat daar wordt getoond is de URL die nodig is om toegang te krijgen tot de router. Zoek ook naar het IP dat aan uw machine is gegeven (aka “IPv4 address” veld), dat zal de server zijn.
De standaard login/wachtwoord varieert ook, dus gebruik de link http://www.routerpasswords.com/ als referentie. Gewoonlijk, login als “admin” en wachtwoord als “password” voltooit de taak goed.
Nu u bent ingelogd in het router systeem, zoek naar alles met betrekking tot portforwarding. Als het systeem je vraagt tussen portforwarding en portriggering, kies dan de eerste, dat is wat we gaan gebruiken.
Nu is het nodig om de juiste poorten voor het Internet in te schakelen. Voor MapleSolaxia, is het in principe nodig om de poorten 7575 tot 7575 + (aantal kanalen) en poort 8484 te openen. Maak een nieuwe aangepaste service die dat bereik van poorten inschakelt voor het kanaal van de server en kies om TCP/UDP protocollen te gebruiken. Tenslotte, maak nu een aangepaste service voor het gebruik van poort 8484.
Optioneel, als je een webpagina wilt hosten, portforward dan ook de poort 80 (de HTTP poort).
Het is nog niet klaar, soms zullen de firewalls verbindingen blokkeren tussen het LAN en het Internet. Om dit te ondervangen, is het nodig om enkele regels voor de firewall te maken om deze verbindingen toe te staan. Zoek naar de geavanceerde opties bij firewalls op je computer en, met het open, maak twee regels (een uitgaande en een inkomende).
Deze regels moeten gericht zijn op “een applicatie”, “verbindingen toestaan” en moeten gericht zijn op je MapleStory client (aka localhost).
Na al deze stappen, zou het portforwarding proces nu compleet moeten zijn.