Jump to content

Ai4rei

Members
  • Content Count

    243
  • Joined

  • Last visited

  • Days Won

    81

Posts posted by Ai4rei


  1. @@Ai4rei I tried InnoSetup and it didn't work o.o how did you manage this?

    http://www.jrsoftware.org/isfaq.php#limits:

    Are there any limits on how many files, etc. may be included in an installation?

     

    Inno Setup places no arbitrary limits on how many files, shortcuts, registry entries, etc. that you may include in an installation. However, keep in mind that Setup does need memory for each entry in a script. For example, roughly 120 bytes of memory is needed for each [Files] entry.

     

    In Inno Setup 3.x and earlier, installations and individual files cannot exceed 2 GB, because it does not use 64-bit arithmetic in most places. This has been addressed in Inno Setup 4.

    Just use the latest version.

  2. Here you go, see if it works alright (did only basic testing). Requires PHP-CLI:

    php collapsemes.php /path/to/npc/folder
    Old files are backed up as *.bak, files that need no change are not touched. You might want to use this in a separate working copy in case it screws up.

     

     

    collapsemes.php:

    #!/usr/bin/php<?php// =================================================================// Collapse consecutive *mes into one, v1.0.1// (c) 2015 Ai4rei/AN//// This work is licensed under a// Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License// ( http://creativecommons.org/licenses/by-nc-sa/3.0/ )// =================================================================// Down-level (PHP 4)if(!function_exists('file_put_contents')){    function file_put_contents($sFileName,$sData)    {        if(($hFile = fopen($sFileName,'wb'))!==false)        {            return fwrite($hFile,$sData) && fclose($hFile);        }        return false;    }}// Down-level Endfunction ProcessFile($sFile){    $bSuccess = false;    echo "File: {$sFile}... load";    if(($sData =@file_get_contents($sFile))!==false)    {        echo ' conv';        // mes ( ( var | string ) [,+] )* string; mes "        $sPattern = '/((?<![a-z0-9_])mess+((??:(??:[$.]?@?|#{1,2}|')(?:[a-zA-Z0-9_]+)$?)|(??<!)"(?:.(?!(?<!)"))*.?"))s*[,+]s*)*(??<!)"(?:.(?!(?<!)"))*.?))"s*;s*mess+")/sS';        if(preg_match($sPattern,$sData))        {            do            {                $sData = preg_replace($sPattern,'mes $2n',$sData);            }            while(preg_match($sPattern,$sData));            echo ' save';            if(rename($sFile,substr($sFile,0,-3).'bak') && file_put_contents($sFile,$sData))            {                echo " successn";                $bSuccess = true;            }            else            {                echo " failuren";            }        }        else        {            echo " skipn";            $bSuccess = true;        }    }    else    {        echo " failuren";    }    return $bSuccess;}function ProcessPath($sPath){    $bSuccess = true;    echo "Enter: {$sPath}n";    if(($hDir =@opendir($sPath))!==false)    {        while(($sFile = readdir($hDir))!==false)        {            if(substr($sFile,0,1)=='.')            {// unix world: skip self- and parent-references and so-called hidden files                continue;            }            $sFullPath = $sPath.'/'.$sFile;            if(is_dir($sFullPath))            {                if(!ProcessPath($sFullPath))                {                    $bSuccess = false;                    break;                }            }            elseif(is_file($sFullPath) && substr(strtolower($sFile),-4)==='.txt')            {                if(!ProcessFile($sFullPath))                {                    $bSuccess = false;                    break;                }            }        }        closedir($hDir);    }    else    {        echo "Failed to read directory: {$sPath}n";    }    echo "Leave: {$sPath}n";    return $bSuccess;}function Main($nArgc,$aArgv){    if($nArgc<2)    {        echo "Usage: php collapsemes.php <script path>n";        return true;    }    return ProcessPath($aArgv[1]);}if(isset($_SERVER['argc']) && isset($_SERVER['argv'])){    return Main($_SERVER['argc'],$_SERVER['argv']) ? 0 : 1;}die("This script must be run on command line.n");?>
    80x15.png

    This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

     

     

    Edit:

     

    v1.0.1: Removed a flag, added regexp overview.


  3. You have to:

    - Make the client recognize (InitPacketLenWithClient) the modified packet. ~ Easy.

    - Make the client parse the modified packet and save the another info in memory (CGameMode::Zc_Ack_Reqnameall). ~ Moderate difficulty.

    - Make the client draw the text along with the other data when requested (probably UINameBalloonText::SetNameText). ~ Complicated.

     

    There probably aren't many people willing and able to do such edit, so you might want to reconsider this. Note, that for hex-stuff you should provide your client version, as some mechanics vary from version to version.


  4. Omg the alpha client??? I kinda want this just to have a piece of RO history on my computer. Hey maybe it has the missing 3D monsters like zombie dragon.

    There is no granny support in the alpha client and no .gr2 files in the data.

  5. It is one of the early RO clients. It uses the "GRFv0" archive format that uses customized lzxx compression rather than zlib (patching was done though additional GRF files in the format pdata%d.grf that were read by the client in order) and contains the alpha maps, that have slightly different format than maps these days. Instead of "1rag1" command line it uses "ragpassword". It does not recognize any xml file (yes, not even clientinfo.xml works). The packet protocol seems completely different as well with login packets from 0x5 to 0x1D and game packets from 0xF to 0xAA. BGMs 1.mp3 through 5.mp3 are hardcoded. The whole client+data has about 151MB.

     

    In short, no, Hercules does not support this.


  6. Making an assumption based on the other topic titled HEXED !, the English alpha client does not support login screen BGM. It has 5 BGMs hard-coded for the respective towns/fields available at that time.

     

    With some effort and assembler skills it is possible to assign login.rsw a BGM, though.


  7. Since there is no further movement in the poll, it concludes with the following result:

    rocredrsupoll.png

    • There will be a new "tool", that does both patching and launching (most likely RO Patcher Lite Core built atop ROCred UI).
    • Majority of the RPI's floating around (p-server client survey) are plug-ins responsible for managing patch information, skinning and HTML patch news, which will be part of the new application, so there will be no plug-in system/API for the time being. The RO Patcher Lite API will probably be put on ice as well.
    • No further efforts will be put into ROCred anymore, except bug-fixes (or "security patches" as some people love to word it).
    Thank you everyone who participated.

     

    Update 2015-12-23:

    Currently struggling (for a few months now) with one of the most basic things: sockets.

     

    The current-public patcher (rsu v2) uses WinINet, a Windows networking component responsible for HTTP and FTP client-side tasks among others, primarily used by Internet Explorer to deal with network, cache and cookies. The API is relatively simple to use and stable, though the latter depends on the Windows version in use (WINE compatibility is a different matter, but it works sufficiently for the patcher to work). Unfortunately this blessing of an API is also a curse, in terms of having no control over it. Somewhere around IE7 or IE8 someone came up with the idea to screw with the timeout handling, referring to the fact, that you can update the timeouts to desired values; the problem is, it does not always work. So people were expected to wait for an connection to timeout after 2 hours, where it should have failed after 15 seconds.

     

    The plan was to make replacement (pretty much like rsulib was for libgrf) for the next major release, which would be rsu v4 along with the result of this poll (which only has rocred built atop of it). The result should be 4 more components (internally referred to as snippets, ex. the absent code from rocred reference source): socket, telnet, http and ftp. The last three are pretty much done. But socket, which actually is around for a while (which is maybe one of the problems), cannot deal with conditions beyond localhost and multi-threading properly, and the API merely mirrors the BSD sockets. It also tends to lose data on *nix for a certain reason. So while trying various models and occasionally experimenting with inconsistent IPv6 parts of the API, both releases are being delayed.

     

    Why I do not use some of the available libraries, ex. curl? Some use GPL, some did not work for me and the last few I am merely too stupid to figure out how they work.

     

     

    Update 2016-02-21:

    Things are finally starting moving. While I still cannot state some ETA, sockets are being actively worked on, basically typing.

     

    Also while going through some Windows SDK headers, I found some support code to implement support for IPv6 without having to raise the minimum OS requirements (the code provides down-level functions for OSes without IPv6 support).

     

     

    Update 2016-09-29:

    Sockets are complete, time to put all those puzzle pieces together.

     

    Update 2017-04-15:

    The core still needs some work, but it starts to look good.


  8. INI:

    • Menu "Action" -> "Add a new resource..."
    • Button "Open file with new resource" -> select your rocred.ini
    • Field "Resource Type": Enter RCDATA
    • Field "Resource Name": Enter CONFIG
    • Field "Resource Language": Enter 0
    • Button "Add Resource"
    • Menu "File" -> "Save"
    Skins (ex. background):
    • Menu "Action" -> "Add a new resource..."
    • Button "Open file with new resource" -> select your background bitmap (.bmp)
    • Field "Resource Type" should turn into BITMAP.
    • Field "Resource Name": Enter BGSKIN
    • Field "Resource Language": Enter 0
    • Button "Add Resource"
    • Menu "File" -> "Save"
    rocred-reshacker.png
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.