Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

rylCoder 2.7.0

Initiate Mage
Joined
Oct 14, 2005
Messages
2
Reaction score
1
Re: [release] rylCoder 2.7.0

Alpha, can you release Xor Keys to ROW files???

I can open, npcscript.mcf of 1753 and 2240 version, but i cant open the same file of ROW.
 
Newbie Spellweaver
Joined
Aug 31, 2007
Messages
27
Reaction score
0
Re: [release] rylCoder 2.7.0

Alpha, can you release Xor Keys to ROW files???

I can open, npcscript.mcf of 1753 and 2240 version, but i cant open the same file of ROW.

Already here, if bother to use 'Search'. Tyfix have shared them.:sneaky2:
 
Newbie Spellweaver
Joined
Jun 6, 2006
Messages
12
Reaction score
3
Re: [release] rylCoder 2.7.0

*bump*

I needed to batch convert GCMDS files, and doing it manually in rylCoder would take forever. I added some code to do this if anyone wants it...

This uses "xor.gcmds-batch-in" and xor.gcmds-batch-out" from the hackfile cfg

CRylCoder.vb
Code:
    Public Shared Sub sharedDataOverWrite(ByVal file As String)
        Dim lines As String() = {}
        If Not IO.File.Exists(file) Then Return
        Try
            lines = IO.File.ReadAllLines(file)
        Catch ex As Exception
            Return
        End Try
        For Each line As String In lines
            Try
                line = line.Trim()
                If line <> String.Empty AndAlso Not line.StartsWith("//") Then
                    Dim splice1 As String() = line.Split("=")
                    Dim splice2 As String() = splice1(0).Trim().Split(".")
                    Dim type As String = splice2(0)
                    Dim fileType As String = splice2(1)
                    Dim index As Integer = 0
                    If UBound(splice2) > 1 Then index = splice2(2)
                    Dim data As String = splice1(1).Trim()
                    Select Case fileType
                        Case "mcf"
                            If type = "xor" Then
                                CMcfCoder.xorKey = parseByteArray(data)
                            End If
                        Case "gcmds"
                            If type = "xor" Then
                                CGcmdsCoder.key = parseByteArray(data)
                            End If
                        Case "gcmds-batch-in"
                            If type = "xor" Then
                                CGcmdsCoder.batchinkey = parseByteArray(data)
                            End If
                        Case "gcmds-batch-out"
                            If type = "xor" Then
                                CGcmdsCoder.batchoutkey = parseByteArray(data)
                            End If
                        Case "gsf"
                            If type = "xor" Then
                                CGsfCoder.xorDat(index) = data
                            ElseIf type = "off" Then
                                CGsfCoder.typeCodes(index) = data
                            End If
                        Case "global"
                            If type = "usageNotice" Then
                                If Not data = "1" AndAlso Not data = "0" Then Throw New ArgumentException("Value can be 1 or 0")
                                frmNpcEdit.enableServerNotice = (data = "1")
                            ElseIf type = "syntaxHighlight" Then
                                If Not data = "1" AndAlso Not data = "0" Then Throw New ArgumentException("Value can be 1 or 0")
                                frmNpcEdit.syntaxHighlightEnabled = (data = "1")
                            End If
                    End Select
                End If
            Catch ex As Exception
                Dim sw As IO.StreamWriter = IO.File.AppendText(file)
                sw.WriteLine("//" & Date.Now.ToString())
                sw.WriteLine("//" & vbTab & "Line: " & line)
                sw.WriteLine("//" & vbTab & "Exception: " & ex.Message)
                sw.WriteLine("//" & vbTab & "Source: " & ex.StackTrace.Replace(vbNewLine, vbNewLine & "//" & vbTab & vbTab))
                sw.Flush()
                sw.Close()
            End Try
        Next
    End Sub
Public Class CGcmdsCoder

#Region "Data"
    Friend Shared key As Byte() = {&H5A, &H5F, &H61, &H6C, &H6C, &H5F, &H41, &H5F, &H33, &H44}
    Friend Shared batchinkey As Byte() = {&H5A, &H5F, &H61, &H6C, &H6C, &H5F, &H41, &H5F, &H33, &H44}
    Friend Shared batchoutkey As Byte() = {&H52, &H4F, &H57, &H47, &H6C, &H6F, &H62, &H61, &H6C, &H4B, &H65, &H79}
#End Region

frmManCrypt.vb (Add a button to this form, heres the code)
Code:
    Private Sub btnBatch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBatch.Click
        Me.btnBatch.Enabled = False
        Me.lblStatus.Text = "Batch Converting... Please wait a moment"

        ' ## - Get Dir Paths In and Out (no trailing slash) - ##
        Dim dirIn As String
        Dim dirOut As String
        dirIn = Me.txtFileIn.Text()
        dirOut = Me.txtFileOut.Text()

        If dirIn = "" Or Not My.Computer.FileSystem.DirectoryExists(dirIn) Then Exit Sub
        If dirOut = "" Then dirOut = dirIn
        If Not My.Computer.FileSystem.DirectoryExists(dirOut) Then Exit Sub
        ' ## - End - Get Dir Paths In and Out (no trailing slash) - ##

        ' Get Existing GCMDS key so we can change it back to this when were done
        Dim tmpKey As Byte()
        tmpKey = CGcmdsCoder.key

        ' Loop through all the files in the dir in path
        Dim x As Integer
        For x = 0 To (My.Computer.FileSystem.GetFiles(dirIn).Count - 1)
            Dim fIn As IO.FileStream
            Dim fileName As String
            Dim filePath As String
            Dim fileExt As String

            fileName = IO.Path.GetFileName(My.Computer.FileSystem.GetFiles(dirIn).Item(x))
            filePath = My.Computer.FileSystem.GetFiles(dirIn).Item(x)
            fileExt = UCase(IO.Path.GetExtension(fileName))

            If fileExt = ".GCMDS" Or fileExt = ".SKEY" Then
                ' ## - Read RAW GCMDS Data into Byte Array - ##
                fIn = My.Computer.FileSystem.GetFileInfo(filePath).OpenRead()

                Dim fInData(fIn.Length - 1) As Byte
                fIn.Read(fInData, 0, fIn.Length)
                fIn.Close()
                ' ## - End - Read RAW GCMDS Data into Byte Array - ##

                ' Setup output file
                Dim fOut As IO.FileStream
                fOut = My.Computer.FileSystem.GetFileInfo(dirOut & "\" & fileName).OpenWrite()
                fOut.SetLength(0)

                ' Switch GCMDS Key to "xor.gcmds-batch-in" (Import Mode)
                CGcmdsCoder.key = CGcmdsCoder.batchinkey

                ' Decode RAW GCMDS Data from Byte Array to String using "xor.gcmds-batch-in" key
                Dim sOut As String
                sOut = CGcmdsCoder.Decode(fInData)

                ' Switch GCMDS Key to "xor.gcmds-batch-out" (Export Mode)
                CGcmdsCoder.key = CGcmdsCoder.batchoutkey

                ' Re-Encode PlainText String file into GCMDS Data Structure using "xor.gcmds-batch-out" key
                Dim bOut As Byte() = {}
                bOut = CGcmdsCoder.Encode(Split(sOut, vbNewLine))

                fOut.Write(bOut, 0, bOut.Length)
                fOut.Close()
            End If

        Next

        ' Reset GCMDS Key to what is was before we started converting
        CGcmdsCoder.key = tmpKey

        Me.btnBatch.Enabled = True
        Me.lblStatus.Text = "Batch Convert Complete."
    End Sub

much faster then doing it by hand :p
 
Newbie Spellweaver
Loyal Member
Joined
Feb 14, 2007
Messages
77
Reaction score
13
Re: [release] rylCoder 2.7.0

Nice share yoshi now just rewrap the dll for x64 lol hehe
 
Newbie Spellweaver
Joined
Aug 25, 2004
Messages
10
Reaction score
0
Re: [release] rylCoder 2.7.0

i have some error like this

alphaest - rylCoder 2.7.0 - RaGEZONE Forums



can u help me to make it running??

Many people have this bug ! any solution i tried in 3 diferents pc always the same result ...!
cant see the pictures like in the guide what "OS" are u using? alphaest
i tried whit 1.1, 2.0 and 3.5 framework
and i have visual studio 2008:(:
 
MorbidA
Loyal Member
Joined
May 28, 2006
Messages
247
Reaction score
32
Re: [release] rylCoder 2.7.0

recompile wrapper class
 
Junior Spellweaver
Joined
May 8, 2007
Messages
100
Reaction score
0
Re: [release] rylCoder 2.7.0

hy, i can`t open script.mcf

the picture like this
alphaest - rylCoder 2.7.0 - RaGEZONE Forums


how to fixed??????


help pls
 
Newbie Spellweaver
Joined
Aug 31, 2007
Messages
27
Reaction score
0
Re: [release] rylCoder 2.7.0

and you are to stupid to use search. :p.

It take me 5 sec to find the shared file (XorKey).
 
MorbidA
Loyal Member
Joined
May 28, 2006
Messages
247
Reaction score
32
Re: [release] rylCoder 2.7.0

rylCoder_hack.cfg: (1022+)

//////////////////////////////
//
// Welcome to the rylCoder HaCkfiLe 2000 pro
//
// Implemented so far:
// xor.mcf = XX XX XX XX (byte array in hex, seperated with space)
// xor.gsf.N = XX XX XX XX (same, N is the zero-based index of key's)
// off.gsf.N = int32 (decimal, data start offset in gsf for file type idenifying, make sure there arent any dublicates)
// xor.gcmds = XX XX XX XX
//
// gsf file N index numbers:
// 0 : ItemScript
// 1 : MonsterProtoType
// 2 : Chemical
// 3 : Script1
// 4 : SkillScript
// 5 : SpecialCompensation
// 6 : MineralVein
//
//////////////////////////////

xor.gcmds = 76 0E 71 63 78 0D 7B 62

off.gsf.0 = 46609
off.gsf.1 = 46076
off.gsf.2 = 40291
off.gsf.3 = 46609
off.gsf.4 = 46072
off.gsf.5 = 17073
off.gsf.6 = 214233

xor.gsf.0 = 7F 8C 2C D1 44 72 F1 01 77 93 AF A0 41 68 68 CD 80 08 9D E9 E7 F0 D5 E2 9B 48 C5 C1 D0 2E 84 B5 9B 20 13 87 86 44 FB F8
xor.gsf.1 = 45 39 6B BB B9 3B C1 D3 61 58 DA 34 DE 31 DA E3 19 B0 90 5F 6F 32 D9 74 BC 35 A7 1C FD C5 D5 E8 20 D7 AE C1 EF D5 D4 62
xor.gsf.2 = 7F 8C 2C D1 44 72 F1 01 77 93 AF A0 41 68 68 CD 80 08 9D E9 E7 F0 D5 E2 9B 48 C5 C1 D0 2E 84 B5 9B 20 13 87 86 44 FB F8
xor.gsf.3 = 8A BE B8 6B EF AF D0 58 83 75 59 D1 2E E8 26 99 78 93 71 FE 56 E5 E6 43 75 7E FE CE C0 B0 79 7A 51 BB C0 85 DA 59 E7 65
xor.gsf.4 = 8A BE B8 6B EF AF D0 58 83 75 59 D1 2E E8 26 99 78 93 71 FE 56 E5 E6 43 75 7E FE CE C0 B0 79 7A 51 BB C0 85 DA 59 E7 65
xor.gsf.5 = 7F 8C 2C D1 44 72 F1 01 77 93 AF A0 41 68 68 CD 80 08 9D E9 E7 F0 D5 E2 9B 48 C5 C1 D0 2E 84 B5 9B 20 13 87 86 44 FB F8
xor.gsf.6 = 45 39 6B BB B9 3B C1 D3 61 58 DA 34 DE 31 DA E3 19 B0 90 5F 6F 32 D9 74 BC 35 A7 1C FD C5 D5 E8 20 D7 AE C1 EF D5 D4 62

xor.mcf = E7 DC E5 E2

/////////////////////////////
//
// Default values in rylCoder 2.5.1
//
// Do not edit this part of the hack file, you may need these values if you duck up
//
// mcf:
// Private Shared xorKey() As Byte = {&HAC, &H29, &H55, &H42}
//
// gsf:
// Private Shared typeCodes As Integer() = {17073, 60006, 41094, 17073, 50407, 84703, 214233}
// Private Shared xorDat As String() = { _
// "A3 49 DC EA 09 B7 01 A4 A1 11 11 8E 80 35 5B DD 38 D5 4E 36 0C A2 BB 05 36 57 2E 98 BE 88 3C 28 43 63 A0 E9 E1 6D 51 CB", _
// "4D 62 84 43 89 C7 89 83 65 29 53 95 7C C0 A1 0C DB D7 04 D8 6A D1 73 1D 21 67 86 8D A4 A0 34 BD 31 20 61 0E E9 63 B4 C0", _
// "A3 49 DC EA 09 B7 01 A4 A1 11 11 8E 80 35 5B DD 38 D5 4E 36 0C A2 BB 05 36 57 2E 98 BE 88 3C 28 43 63 A0 E9 E1 6D 51 CB", _
// "34 B5 B2 3D 7D 43 8C C0 21 25 CD B6 53 76 CE 5D D4 87 CA 84 81 CB 5E 04 BA 69 3E 65 DE 21 8A 63 62 71 90 87 0A 52 28 44", _
// "34 B5 B2 3D 7D 43 8C C0 21 25 CD B6 53 76 CE 5D D4 87 CA 84 81 CB 5E 04 BA 69 3E 65 DE 21 8A 63 62 71 90 87 0A 52 28 44", _
// "A3 49 DC EA 09 B7 01 A4 A1 11 11 8E 80 35 5B DD 38 D5 4E 36 0C A2 BB 05 36 57 2E 98 BE 88 3C 28 43 63 A0 E9 E1 6D 51 CB", _
// "4D 62 84 43 89 C7 89 83 65 29 53 95 7C C0 A1 0C DB D7 04 D8 6A D1 73 1D 21 67 86 8D A4 A0 34 BD 31 20 61 0E E9 63 B4 C0 " _
// }
//
// gcmds:
// Private Shared key As Byte() = {&H5A, &H5F, &H61, &H6C, &H6C, &H5F, &H41, &H5F, &H33, &H44}
//
//////////////////////////////

//////////////////////////////
//
// Log section
//
//////////////////////////////
//
 
MorbidA
Loyal Member
Joined
May 28, 2006
Messages
247
Reaction score
32
Re: [release] rylCoder 2.7.0

you're welcome
 
Initiate Mage
Joined
Feb 25, 2009
Messages
1
Reaction score
0
Re: [release] rylCoder 2.7.0

Ask how RYLCODE can open the traditional Chinese the NPC document? help me
 
Back
Top