From 033851217f301263d504db3de2f055549cbb609d Mon Sep 17 00:00:00 2001 From: fragmental Date: Thu, 22 Aug 2013 22:46:58 -0500 Subject: [PATCH] first commit --- 128px icon.ico | Bin 0 -> 67646 bytes HabitRPG Local Server.ico | Bin 0 -> 270398 bytes HabitRPG_Local on the Web.url | 2 + README.txt | 132 ++++++++++++++++++++++++++ Your Local Server (localhost3000).url | 6 ++ habit 021 inno script.iss | 64 +++++++++++++ habitrpglocal.cmd | 9 ++ innobefore.txt | 38 ++++++++ licenses.txt | 14 +++ mongodb.cmd | 4 + server.cmd | 6 ++ 11 files changed, 275 insertions(+) create mode 100644 128px icon.ico create mode 100644 HabitRPG Local Server.ico create mode 100644 HabitRPG_Local on the Web.url create mode 100644 README.txt create mode 100644 Your Local Server (localhost3000).url create mode 100644 habit 021 inno script.iss create mode 100644 habitrpglocal.cmd create mode 100644 innobefore.txt create mode 100644 licenses.txt create mode 100644 mongodb.cmd create mode 100644 server.cmd diff --git a/128px icon.ico b/128px icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..35c83b0ed00ca2ca882242e6fa6730d094c6ce24 GIT binary patch literal 67646 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 literal 0 HcmV?d00001 diff --git a/HabitRPG Local Server.ico b/HabitRPG Local Server.ico new file mode 100644 index 0000000000000000000000000000000000000000..51010c37db47bc97c971066b6ca325e03c27857f GIT binary patch literal 270398 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

een0w`5#V-hd~%u+&mZQJ)(# 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 desktop". + +Localhost:3000 doesn't show anything, or shows an error: +Make sure that the server.cmd and mongodb.cmd windows are open. If they are open, and you are still receiving an error, or a black page at "localhost:3000", then close the cmd windows and then reload them with "HabitRPG Local Server". If closing the two cmd windows, and restarting them doesn't solve your problem, and you installed to a folder that was not "C:\hrpgl" then it is possible that the server is having a problem with the path you chose to install to. You can try to uninstall and then reinstall to "c:\hrpgl". If you don't have administrator privileges, "c:\user\'your user name'\hrpgl" might work, where 'your user name" is the actual user name you log in with. + +Troubleshooting does not solve the problem: +See "Bug Reporting etc." below. + + +Accessing HabitRPG-Local over LAN +--------------------------------- +You can access your HabitRPG-Local server over your local network by entering the server computers ip followed by the port number(192.168.0.100:3000, for example). To find your the server computers ip, run "ipconfig" in a command prompt window. The ports will need to be open, if you have a firewall. + + + +Technical Details +----------------- + +HabitRPG-Local is just a snapshot of the HabitRPG develop branch on Github, with a windows node.js binary, a copy of Mongodb, and some batch scripts(cmd). + +The batch scripts run mongodb and then the server. It's not pretty, but it seems to work. + +The installer extracts everything to a folder, and then adds icons to the HabitRPG-local start menu folder and desktop. + +Other Operating Systems: +Other operating systems would probably work by replacing mongodb and the node.js binary with the version for your operating system, but the batch files wouldn't work. You would need to run the mongod executable as well as "(node binary) server.js" by hand. It would make more sense to follow the directions at: +"https://github.com/lefnire/habitrpg/wiki/Running-Locally-(Server)" + + + +License +------- +The license file, called "licenses.txt" with all the relevant licensing information, is in the "C:\hrpgl\" folder. + + + +Changelog +--------- + +Version 0.2.1 - Aug. 21, 2013 +Fixed missing node.js. +Tried to create prompts for overwriting directories in the installer. Also, tried to change uninstaller to leave habitdb folder. + + +Version 0.2.0 - Aug. 18, 2013 +Added InnoSetup installer. +habitrpg:develop snapshot Aug. 17, 2013 +mongodb version 2.4.5 i386 +node.js version 0.8.25 32-bit + +Version 0.1.0 - Aug. 17, 2013 +Initial release. +WinRAR Self Extracting Executable. +habitrpg:develop snapshot Aug. 17, 2013 +mongodb version 2.4.5 i386 +node.js version 0.8.25 32-bit + + + +Bug Reporting Etc. +------------------ + +If you have problems or questions please post them to the forum thread at http://community.habitrpg.com/content/habitrpg-local-unofficial. There is a link to the forum thread in the HabitRPG-Local Start Menu folder called "HabitRPG-Local on the Web" + + diff --git a/Your Local Server (localhost3000).url b/Your Local Server (localhost3000).url new file mode 100644 index 0000000..d488488 --- /dev/null +++ b/Your Local Server (localhost3000).url @@ -0,0 +1,6 @@ +[InternetShortcut] +URL=http:///localhost:3000/ +IDList= +HotKey=0 +[{000214A0-0000-0000-C000-000000000046}] +Prop3=19,2 diff --git a/habit 021 inno script.iss b/habit 021 inno script.iss new file mode 100644 index 0000000..190e573 --- /dev/null +++ b/habit 021 inno script.iss @@ -0,0 +1,64 @@ +; Script generated by the Inno Setup Script Wizard. +; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! + +#define MyAppName "HabitRPG-Local" +#define MyAppVersion "0.2.1" +#define MyAppPublisher "Stewart J Martin" +#define MyAppURL "http://community.habitrpg.com/content/habitrpg-local-unofficial" +#define MyAppExeName "habitrpglocal.cmd" + +[Setup] +; NOTE: The value of AppId uniquely identifies this application. +; Do not use the same AppId value in installers for other applications. +; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) +AppId={{2A222FD0-A0EE-4C95-9382-961186CF793E} +AppName={#MyAppName} +AppVersion={#MyAppVersion} +;AppVerName={#MyAppName} {#MyAppVersion} +AppPublisher={#MyAppPublisher} +AppPublisherURL={#MyAppURL} +AppSupportURL={#MyAppURL} +AppUpdatesURL={#MyAppURL} +DefaultDirName=c:\hrpgl +DefaultGroupName={#MyAppName} +InfoBeforeFile=C:\Users\Stewart\Desktop\habit local\innobefore.txt +InfoAfterFile=C:\Users\Stewart\Desktop\habit local\hl\README.txt +OutputBaseFilename=setup +Compression=lzma +SolidCompression=yes +DirExistsWarning=yes + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}" +Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1 + +[Files] +Source: "C:\Users\Stewart\Desktop\habit local\licenses.txt"; DestDir: "{app}"; Flags: ignoreversion +Source: "C:\Users\Stewart\Desktop\habit local\Your Local Server (localhost3000).url"; DestDir: "{app}"; Flags: ignoreversion +Source: "C:\Users\Stewart\Desktop\habit local\128px icon.ico"; DestDir: "{app}" +Source: "C:\Users\Stewart\Desktop\habit local\HabitRPG Local Server.ico"; DestDir: "{app}" +; NOTE: Don't use "Flags: ignoreversion" on any shared system files +Source: "C:\Users\Stewart\Desktop\habit local\hl\habitrpglocal.cmd"; DestDir: "{app}"; Flags: ignoreversion +Source: "C:\Users\Stewart\Desktop\habit local\hl\mongodb.cmd"; DestDir: "{app}"; Flags: ignoreversion +Source: "C:\Users\Stewart\Desktop\habit local\hl\README.txt"; DestDir: "{app}"; Flags: ignoreversion +Source: "C:\Users\Stewart\Desktop\habit local\hl\server.cmd"; DestDir: "{app}"; Flags: ignoreversion +Source: "C:\Users\Stewart\Desktop\habit local\hl\habitdb\*"; DestDir: "{app}\habitdb\"; Flags: ignoreversion createallsubdirs recursesubdirs confirmoverwrite uninsneveruninstall promptifolder +Source: "C:\Users\Stewart\Desktop\habit local\hl\h\*"; DestDir: "{app}\h\"; Flags: ignoreversion createallsubdirs recursesubdirs +Source: "C:\Users\Stewart\Desktop\habit local\hl\mongodb\*"; DestDir: "{app}\mongodb\"; Flags: ignoreversion createallsubdirs recursesubdirs + +[Icons] +Name: "{group}\HabitRPG-Local Client (localhost3000)"; Filename: "{app}\Your Local Server (localhost3000).url"; IconFilename: "{app}\128px icon.ico"; IconIndex: 0 +Name: "{group}\HabitRPG-Local Server"; Filename: "{app}\{#MyAppExeName}"; IconFilename: "{app}\HabitRPG Local Server.ico"; IconIndex: 0 +Name: "{group}\README"; Filename: "{app}\README.txt" +Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}" +Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" +Name: "{commondesktop}\HabitRPG-Local Client"; Filename: "{app}\Your Local Server (localhost3000).url"; IconFilename: "{app}\128px icon.ico"; IconIndex: 0 +Name: "{commondesktop}\HabitRPG-Local Server"; Filename: "{app}\{#MyAppExeName}"; IconFilename: "{app}\HabitRPG Local Server.ico"; IconIndex: 0; Tasks: desktopicon +Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon + +[Run] +Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: shellexec postinstall skipifsilent + diff --git a/habitrpglocal.cmd b/habitrpglocal.cmd new file mode 100644 index 0000000..5b5f5f7 --- /dev/null +++ b/habitrpglocal.cmd @@ -0,0 +1,9 @@ +@echo off +call "cmd /c start mongodb.cmd" +#echo "Wait for mongodb to start, and then press enter" +#pause +call "cmd /c start server.cmd" + +#pause +exit + diff --git a/innobefore.txt b/innobefore.txt new file mode 100644 index 0000000..f132057 --- /dev/null +++ b/innobefore.txt @@ -0,0 +1,38 @@ +HabitRPG-Local 0.2.1 +-------------------- + +READ THIS BEFORE INSTALLING!!! + +What you are about to install is an unofficial package of habitrpg's server/client. This server is a local server, that DOES NOT sync with the remote server at habitrpg.com. + + +Requirements: +-This installation is for Microsoft Windows (Only XP and windows 7 have been tested.) +-You will need approximately 600MB of free hard drive space. + + +IMPORTANT: +Do NOT change the installation folder unless you absolutely must. This installer installs HabitRPG-Local into "C:\hrpgl", because installing into other folders may potentially cause errors with file paths being too long. If you choose to install to a different folder, try to install to a folder that is directly off of the root directory(The root directory 8 is c:\ for most people). If that is not an option for you, try to install to the folder with the shortest path name(If you don't have administrator privileges, "c:\user\'your user name'\hrpgl" might work, where 'your user name" is the actual user name you log in with). If you recieve errors, you can try to simply skip or ignore them all, and HabitRPG-Local may still work, if you're lucky. + + +Details: +Besides the "c:\hrpgl" folder, the installer also creates a folder called "HabitRPG-Local" in the start menu that contatins links to the HabitRPG-Local server, client, forum thread, readme and uninstaller. It also installs icons for the server and client to the desktop, unless you unchecked the box during install. + + +Time to install: +Once the installer starts, it will take some time. On my system it took about 5 minutes. + + + +Post Installation: + +After installation, the installer gives you the option to launch HabitRPG-Local. This will launch two black cmd prompt windows called "mongodb.cmd" and "server.cmd". This is the server and it's database. These windows must stay open for the server to work. Server.cmd may take some time to load, and may stay black while it's loading. If you recieve any popups requesting access, press accept. + +If the installation, mongodb.cmd, and server.cmd are successful, the server.cmd window should say that socket.io started, followed by 4 lines of text about expressions. You can then open the client from the start menu(or desktop) by running "HabitRPG-Local Client", or by entering "localhost:3000" in your web browser's address bar. + +If you have problems or questions please post them to the forum thread at http://community.habitrpg.com/content/habitrpg-local-unofficial, AFTER you have read this file and the README. There is a link to the forum thread in the HabitRPG-Local folder called "HabitRPG-Local on the Web". + + + + + diff --git a/licenses.txt b/licenses.txt new file mode 100644 index 0000000..694abd9 --- /dev/null +++ b/licenses.txt @@ -0,0 +1,14 @@ +HabitRPG code is licensed under GNU GPL v3. Content is licensed under CC-BY-SA 3.0. See the LICENSE file in the "H" folder for details. + +HabitRPG-Local code is licensed under GNU GPL v3. Content is licensed under CC-BY-SA 3.0. + +MongoDB's license details can be found in the MongoDB folder, or: +MongoDB(version) is licensed using the AGPL 3.0 license. +http://www.gnu.org/licenses/agpl-3.0.html +MongoDB's drivers use the Apache 2.0 license. +http://www.apache.org/licenses/LICENSE-2.0 + + +Node.JS is licensed using the MIT license. +https://raw.github.com/joyent/node/v0.10.16/LICENSE + diff --git a/mongodb.cmd b/mongodb.cmd new file mode 100644 index 0000000..bf059a0 --- /dev/null +++ b/mongodb.cmd @@ -0,0 +1,4 @@ +@echo off + +cd mongodb\bin +mongod.exe --dbpath ..\..\habitdb diff --git a/server.cmd b/server.cmd new file mode 100644 index 0000000..3ffb6a9 --- /dev/null +++ b/server.cmd @@ -0,0 +1,6 @@ +@echo off + +cd h +node.exe server.js + +