Jump to content

Ai4rei

Members
  • Content Count

    242
  • 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

  9. HERE SOME INFORMATION ABOUT MY PROBLEM 

     

    IM USING 2012-04-10aRagexeRE_J.exe

     

    - I Started Info. 

    image.png

     

    Putting Username And Password

     

    image.png

     

    UNREGISTERED ID WHEN I START

     

    image.png

     

    HERE ARE THE LOGIN SERVER CONSOLE

     

    image.png

     

    HERE MY MYSQL LOGIN TABLE

     

    image.png

     

     

     

     

     

    ; ------------------------------------------------------------------; RO Credentials (ROCred); (c) 2012-2015 Ai4rei/AN;; ------------------------------------------------------------------; Lines starting with ; are comments and can be removed before; embedding the config into rocred.; Numbers are always considered decimal (base 10) unless stated; otherwise.; When a color value is required, it can be in one of the following; CSS-like formats:;       #rgb                    hexadecimal (short);       #rrggbb                 hexadecimal (long);       rgb(r,g,              decimal or hexadecimal;       rgb(r%,g%,b%)           percentage[ROCred]; Whether or not user name is remembered.; Values:;       0: No;       1: YesCheckSave=0; Remembered user name.; Client to start when clicking login or replay.ExeName=pinas-ro.exe; Argument to pass to the client.ExeType=1rag1; Whether or not password should be MD5 hashed.; Values:;       0: Plaintext;       1: MD5 hashHashMD5=0; Whether second instances are allowed or not.; Values:;       0: No;       1: Yes; Note: This setting is not meant as measure to prevent double;       clienting.SecondInstance=0; Whether or not the checkbox for remembering user name is; available.; Values:;       0: Available;       1: UnavailablePolicyNoCheckSave=0; Whether or not the button for starting replay is available.; Values:;       0: Available;       1: UnavailablePolicyNoReplay=0; Whether or not the notification icon is displayed when in; background waiting for the client to complete.; Values:;       0: Display;       1: HidePolicyNoTrayIcon=0; Whether or not password is kept during a session when in; background waiting for the client to complete.; Values:;       0: Kept;       1: Not keptPolicyNoSessionPassword=0; Font size of the dialog in points.; Note: Sample skin is designed for size 26.FontSize=9; Provides miscellaneous client information to the server as part of; the password/hash data. The password/hash is provided as "key".; Bitmask:;       &1: Hardware address of the network adapter (mac).;           Internet-bound adapters are searched first, otherwise;           the first available is picked. If the MAC address cannot;           be retrieved, "000000000000" is passed.; Note: The user receives an agreement prompt the first time they;       provide the data to the server.; Note: The server must be modified to support the data format.;       Example: mac=112233445566&key=mypwd123; Note: Password is always the last key-value pair and is not;       urlencoded.MiscInfo=0

    WHAT IS THE PROBLEM SIR ? I TRIED TO EDIT THE .INI BUT NOTHING HAPPEN

     

     

    I assume you have dropped your client on "istarted", which is the wrong way to use it (process parent must be rocred). Please configure "istarted" as client in rocred.ini and login through rocred. Provide the "Command Line" then, thank you.

     

    The login-server console is interesting, that both username and password are empty.

×
×
  • Create New...

Important Information

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