The forum

[Script] Wonderland Online

Author Replies
jhersey Thursday 6 February 2014 at 3:39

Description: From Wonderland Online is a free-to-play 2D MMORPG from Chinese Gamer International and IGG influenced by several ancient South American and Pacific Island cultures. The game sets players on an island and features quests, pets, crafting, PvP, events, highly customizable player housing, and more.


Unique Characters | Pick from over 12 different characters with unique skills and attributes.
Player Housing | Obtain and decorate your own highly customizable tent.
Fishing and Crafting | Go fishing or manufacture your own powerful items.
Pet System | Obtain a variety of unique pets, from snails and dinosaurs to eagles and tigers.
Spells and Abilities | Learn and use different Earth, Water, Fire, and Wind spells and abilities.

Issue that was addressed #1: Webpage dialog after install is not currently compatible with Gecko. Even with IE6,8 installed the program will crash.

Workaround: The work around I developed after debugging the used DLL files was to install wininet.dll, ieframe.dll, and iertutil.dll. ieframe.dll errors out without iertutil.dll in the system32 directory. I tried all IE6 ieframe.dll and it did not work and caused a page fault error. So I tried IE8's ieframe.dll and it errored out. After debugging it was missing a dll file (iertutil.dll) when installing this, it still errored out with the wininet.dll file from wine. so I installed IE8 wininet.dll. It generated an error before the page but the program continued to load. Since I did not want an error message to display at all if possible. I tried the wininet overide with PlayOnLinux. This one allowed the webpage dialog to load up without an error message before hand. The page displayed is blank. As of this version of wine (1.7.11) this cannot be fixed. But the error that prevented the game from loading has been successfully bypassed and this is reason why you use IE5 wininet.dll and IE8's ieframe.dll and iertutil.dll.

Issue that was address #2: This game has a Window Mode Issue. It will not run as a Window. It will give an unable to reset default data error. The game runs fine in Full Screen which is no issue.

Workaround: I included a dialog that tells the installer of the program the error and gives them an option to set the default desktop size to have a "window" version of the game. This game resolution is 800x600. If you try to resize it to any other size but this it will reset the display back to 800x600 after the webpage dialog. So the only viable option is to set the default desktop size to 800x600. This is also the case if you run the game in Full "Full-screen" mode. It will change you resolution to 800x600. So on the 1st load you have to go into settings  on the menu and change it from Window to Full Screen. I could include this in the script also but I am unsure of file modification rules with PlayOnLinux and would rather let the user know about it and have to easily resolve the issue.

Now the Script - Tested many many times to ensure it is functioning properly and as expected.

# Date : (2014-02-05 ??-??)
# Last revision : (2014-02-05 21-10)
# Wine version used : 1.7.11 x86
# Distribution used to test : Ubuntu 13.10 x86_64
# Licence : GPLv3
# PlayOnLinux : 4.2.2
# Author : Joseph Hersey
[ "$PLAYONLINUX" = "" ] && exit 0
source "$PLAYONLINUX/lib/sources"
TITLE="Wonderland Online"
AUTHOR="Joseph Hersey"
# Initialization
POL_GetSetupImages "$PREFIX/top.jpg" "$PREFIX/left.jpg" "$TITLE"
# Presentation
POL_SetupWindow_presentation "$TITLE" "$EDITOR" "$GAME_URL" "$AUTHOR" "$PREFIX"
# Create Prefix
POL_System_SetArch "x86" # Game is 32-bit, no need for 64-bit arch
POL_Wine_SelectPrefix "$PREFIX"

# Overrides 
# These overrides are only need to be able to be able to bypass the Webpage Screen after the EULA. No overrides are needed for the actual game
# Overriding wininet.dll - IE 5 Version so you do not get error message after EULA
# This section based off POL_Install_IE8 Script and POL_Install_wininet scripts
#Download required Files
 POL_Download_Resource "" "0c0f6e300800e49472e9b2e0890a09c1"
 POL_Download_Resource "" "616c2e8b12aaa349cd3acb38bf581700"

#Extract required DLLs  
 cd "$WINEPREFIX/drive_c/windows/temp"
 cabextract "$POL_USER_ROOT/ressources/IE5.01sp4-KB871260-Windows2000sp4-x86-ENU.exe" -F WININET.DLL
 cabextract "$POL_USER_ROOT/ressources/IE8-WindowsXP-x86-ENU.exe" -F IEFRAME.DLL
 cabextract "$POL_USER_ROOT/ressources/IE8-WindowsXP-x86-ENU.exe" -F IERTUTIL.DLL  

#Copy required DLLs
 cp -f WININET.DLL $WINEPREFIX/drive_c/windows/system32/wininet.dll
 cp -f ieframe.dll $WINEPREFIX/drive_c/windows/system32/ieframe.dll # ieframe.dll file
 cp -f iertutil.dll $WINEPREFIX/drive_c/windows/system32/iertutil.dll  # IE Runtime Utility - Needed by ieframe to not error out

# Overriding DLLs
POL_Wine_OverrideDLL "native" "ieframe"
POL_Wine_OverrideDLL "native" "wininet"

# Fullscreen or Window
POL_SetupWindow_question "Wonderland has a Window Mode error. It will get you a unable to set default data. Make sure you set to Full Screen under options. If you would like to run as a window we have to set the default desktop size. Would you like to run program as a window?" "$TITLE"
 if [ "$APP_ANSWER" = "TRUE" ] 
   Set_Desktop "On" "800" "600" # Game will only run in 800x600 Full Screen. Any other size and it will resize to 800x600.
# Installation - Determine if user wants to download or use a local copy.

POL_SetupWindow_InstallMethod "LOCAL,DOWNLOAD" # Choose method of installation 
 if [ "$INSTALL_METHOD" = "LOCAL" ] 
     POL_SetupWindow_browse "$(eval_gettext 'Please select the setup file to run')" "$TITLE" # Browse for File
     POL_Wine_WaitBefore "$TITLE"
     POL_Wine "$APP_ANSWER" # Install Application
     POL_System_TmpCreate "$PREFIX" # Create temp folder
     cd "$POL_System_TmpDir"
     POL_Download "" # Download the installer
     mv downCnt.php?did=37 InstallWLO.exe  

     POL_Wine_WaitBefore "$TITLE"
     POL_Wine "InstallWLO.exe" # Install Application
     POL_System_TmpDelete # Delete Temp Directory
# Create Shortcuts
POL_Shortcut "Main.exe" "$TITLE" "" "" "Game;RolePlaying;"
exit 0

I will add images to this post later.

Issue that has nothing to do with game: Everything works great with this script. The Downloader downloads the file, installer installs the program, webpage error has been bypassed, and The program will run as expected. But if you choose to run the program after install it does not execute. You have to end the process in order to shut down the screen after install. The link it shows on the desktop can be executed and load the game. But when it is shutdown the window does not close. The shortcut in PlayOnLinux is still made though.

But if you do not execute and then execute it thru the PlayOnLinux Interface it loads up as normal.

Now 1 thing I noticed was on the very first screen (This also appears with the prior 2 scripts from me Pirate 101 and Wizard 101). The location field of the first screen has a extra \ in it. I do not know if this is the issue why. I know when I run the installer under Normal Wine this issue does not happen. Maybe someone could give me a tip on why this is happening so I can avoid it in the future.

Edited by petch