PDA

View Full Version : [Release] KalOnline Server & Client Protect Final R11



it.cracker
24-05-09, 10:09 PM
Dear community it’s a long time ago where I had release the last public standard edition and really I had hoped someone will started an new public protection project and that’s is the reason why I will now release the last new standard edition. So may u should too know I have remove and add much on the new project and too the standard edition is very smaller as the premium edition. So primary has the new standard edition only the protection core. And the last important point is the new standard edition works too with license files also same as the premium edition so someone wants to get the new standard edition must first order with the online installer a license. IMPORTANT by license order is to fill all fields with correct information for the license because with this information I want to make the license file and u will get after check the information (server name, homepage …) the license file via email and the order processing time can be a day or longer. Also to continue the online installation u will need the license files!

About the installation steps:

1. Download the last online installer version (1.2.7.108)
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)

2. Now you can start the online installer on the machine you want to use KOSP and read exact the installation terms you have to accept to continue the installation then press the button “Next >>” to get the next frame.


<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

If you got already the license files for the standard or premium edition then you can continue with the next step if not you must first order an new license so make an checked by the “Order an new license” then press the button “Next >>” and you will get two message :

“Use the installer only on the machine u want to use the KalOnline Server Protect (KOSP) because after the installation u can only use KalOnline Server Protect (KOSP) on this machine. Also too if u want to change the hardware or switch to other server u must use this installer again but u can only use this installer one time each day by different machine.”

“First of all, I would like to thank everybody that want to donate or that’s has already donated. I really appreciate it. Also the donation for the standard edition is voluntarily but not for the premium edition! So you can get the premium edition above donation of 45 euro if you want.”

Press “Ok” to get the next frame.

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

Now you can see the form about the server details. Fill all fields with the exact information about your server because you can only send one order request and I will ignore all license order requests with wrong server details. Too if you want to donate or want to get the premium edition (don’t forget to checked the right version you want to get) then fill the field “PayPal E-Mail” with you exact paypal e-mail address you want to donate only so I can trace the donation to the license. After fill all fields (without PayPal E-Mail) you get then the enabled “Send request without donate” button and with (PayPal E-Mail) too the enabled donate “Send Request” button. Too to get the Premium Edition you must fill the “PayPal E-Mail” field. Now you can send the order license request.


<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

After send the order license request you can close the installer and you will get soon a e-mail with the license files.

3. Now you will get a form about the location of you main server and about the location of you client. In the first field you must select the target file to your “MainSvrT.exe” (server directory) and second filed the target file to your “engine.exe” (client directory). Now unpack the license file winrar archive and select the three license files (.lzs, .lzc and .lze) for the last three fields.

THE INSTALLER DON’T WILL COPY OR CHANGES IN THE SELECTED TARGET DIRECTORY!!

Press “Next >>” to get the next frame.

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>


4. Now you will get a quick information about the installation steps will do the installer:

· Copy the target directory of the MainSvrT.exe to the installation directory Server.
· Copy the target directory of the engine.exe to the installation directory Client.
· Download the last files of KOSP/KOCP and KOAPE.
· Save KOAPE file's in the same directory as installer.
· Patch the MainSvrT.exe for KOSP ready
· Patch the unpacked engine.exe for KOCP ready
· Copy the license files to the target directory also (data.lze [KOSP], data.lzc [KOCP] and data.lze [KOAPE]).
· Changes the serial number's to the target files also (config.properties [KOSP/KOAPE] and system.ini [KOCP])

Press “Install” to begin the installation.


<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

5. After the installation progress you will get a message:

“KalOnline Server & Client Protect installation is finished. So you can now find a copy of kosp/kocp and koape in the same directory as the installer. The installer have already patched the MainSvrT.exe and engine.exe too copyed the license file to the right destionation directorys and have changesd the serial.”

So have installer now make a full copy of you main server directory too of you client directory in the installer work dir. There you can now find a two new directory’s first “Server” and second “Client”. The installer have download the KOSP file in the copy “Server” directory and KOCP in the new “Client” directory. Too have the installer patched the MainSvrT.exe and engine.exe for KOSP and KOCP ready and have copy the license file to the destination directory (data.lzs to “Server”, data.lzc to “Client” and data.lze to “KOAPE”) and have changed the serial too in “Server\config.properties”, “Client\system.ini” and “KOAPE\config.properties”. The KalOnline Advanced PK Editor you will too find in the work dir of the installer under the sub directory name “KOAPE”.


<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

6. Now after the installation read the installation history log to know what’s was copy and changed. After then you can close the installer and start the KalOnline Advanced PK Editor.

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

7. Open the menu “File -> Open Packet” and select first the “Client\data\Config\config.pk” file (swordcrypt) and press the button open.


<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

8. You will now get an password window with default password so you must now changed the password if it a different password from you pk files or press the “OK” button.

9. The KalOnline Advanced PK Editor will now load the config.pk file into the editor.

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

10. Open the menu “File -> Save Packet As …” and changes the file name to “config” and select the file type “KalOnline exclusive pk file (exclusive v3)”. And then press the button “Save”.


<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

11. Now you will get again the password window to change it or press the “OK” button.

12. Open the menu “File -> Close Packet” to close the pk file and try the same with the “e.pk” file to save it to “e.pk3”. So you should now have a full worked server and client.

13. Think the last step is to compress the engine.exe again but you should to know only few compressor will works with the last release of KOCP as example nPack is one compressor I know its works with KOCP.

About the feature:

1. (Animal experience rate by monster kill and time)
It’s a feature to set the animal experience rate will get after monster kill or still wait time.

2. (Auto random announcement)
It’s a feature to set more then one announcement (notice) will be showing on random time delay.

3. (Chat police filter)
It’s a feature to filter the chat to bad words.

4. (Item drop chance rate*)
Its’ a feature to set the item drop chance rate you will may get after monster kill.

5. (Item group drop chance rate*)
It’s a feature to set the item group drop chance rate you will may get after monster kill.

6. (Geon drop rate*)
It’s a feature to set the geon amount rate you will may get after monster kill.

7. (Equipment enchant chance rate)
It’s a feature part from the base scripts there you can set the equipment enchant rate like (Attack/Magic Talisman).

8. (Weapon enchant chance rate)
It’s a feature part from the base scripts there you can set the weapon enchant rate like (ToA, ToD).

9. (Connection flood protection)
It’s a feature to protect u server for mass or fast connection flooding.

10. (Game master action blocker)
It’s a feature to block game master do action like (player party or trade, item drop, send items via F/L …)

11. (Game time sync*)
It’s a feature to sync the client in game time with the time of the server.

12. (Chat and login logger)
It’s a feature to log the in game player chat too the time about player login.

13. (Login message)
It’s a feature to set the player login message will get after enter into the world.

14. (Mix system make weapon chance rate)
It’s a feature part from the base scripts there u can set the mix make weapon chance rate.

15. (Mix system upgrade weapon chance rate)
It’s a feature part from the base scripts there u can set the mix upgrade weapon chance rate.

16. (Player experience rate by monster kill*)
It’s a feature to set the player experience rate u will get after monster kill.

17. (Protect max allowed attack and magic points)
It’s a feature to protect you server for the overload like (65k) attack/magic points.

18. (Protect equipment change delay)
It’s a feature to protect you server for the one hit hack like fast sword switch between G40 and G50 Giant Sword.

19. (Protect skill casting and cool down)
It’s a feature to protect you server for skill casting and cool down.

20. (Powerful script engine base on lua)
It’s a feature to make own powerful scripts on lua base with extra function for KOSP and KOCP (KOCP you need the Premium Edition). The new script engine work’s with other core as the old script engine from the R10. Also the new script engine don’t will load all script automatic so you must define all script’s u want to load in the core main script file Main.ksp.

function Main()

LoadScript("Scripts/EnchantEquipmentChanceRate.ksp", "EnchantEquipmentChanceRate")
LoadScript("Scripts/EnchantWeaponChance.ksp", "EnchantWeaponChance")
LoadScript("Scripts/MakeWeaponChanceRate.ksp", "MakeWeaponChanceRate")
LoadScript("Scripts/UpgreadeWeaponChanceRate.ksp", "UpgreadeWeaponChanceRate")



end

About script function:

a. ShowMessage(<message>)
Displays a message box with an OK button.

Parameter:

<message> ; The message as string.

Examples:

ShowMessage("hello world")

b. LoadScript(<script file>, <script class name>)
Load script file in the class name space.

Parameters:

<script file> ; The script file to load
<script class name> ; The script class name you want to load the script file.

Example:

LoadScript("Scripts/EnchantEquipmentChanceRate.ksp", "EnchantEquipmentChanceRate")

c. ExecuteScript(<script class name>)
Execute a script while server start.

Parameters:

<script class name> ; The script class you want to execute.

Example:

ExecuteScript ("EnchantEquipmentChanceRate")

d. WriteMemoryByte(<offset>, <byte value>)
Write one byte to the defined offset.

Parameters:

<offset> ; Target offset you want to write one byte.
<byte value> ; Value you want to write as byte

Example:

WriteMemoryByte(0x429751, 0)

e. WriteMemoryDword(<offset>, <dword value>)
Write one dword to the defined offset.

Parameters:

<offset> ; Target offset you want to write one dword.
<dword value> ; Value you want to write as dword.

Example:

WriteMemoryDword(0x41FFA2, 0)

f. byte ReadMemoryByte(<offset>)
Read one byte out of the defined offset and return the read byte.

Parameters:

<offset> ; Target offset you want to read one byte.

Example:

Value = ReadMemoryByte(0x429751)
Message(Value)

g. dword ReadMemoryDword(<offset>)
Read one dword out of the defined offset and return the read dword.

Parameters:

<offset> ; Target offset you want to read one dword.

Example:
Value = ReadMemoryDword (0x41FFA2)
Message(Value)

h. Hook(<offset>, <format>, <script class name>")*
Hook is a function to hook a offset to call a script.

Parameters:

<offset> ; Target offset you want to hook.
<format> ; Format you need only to get the parameters of the function like ‘s’ for string, ‘d’ for decimal as example.
<script class name> ; The script you want to call with hook.

Example:

ServerStart.ksp

function ServerStart(port, year, month, day, hour, minute, second)

Call(0x432890, "hook text !!")
Call(0x432890, port, year, month, day, hour, minute, second)

end

Hook(0x004354CE, "sdddddddd", "ServerStart")

i. Call(<offset>, <parameter 1>, <parameter 2>, …)*
Call is a function with same function as in ASM so you can call any offset function out of (MainSvrT.exe, engine.exe).

Parameters:

<offset> ; Target offset you want to call (its must be a function)
<parameter x> ; May parameters need the function

Example:

Call(0x432890, "hello world %d, %d", 1, 2)

j. dword strptime(<buf>, <format>)
The strptime() function converts the specified character string to time values, using the specified format.

Parameters:

<buf> ; The time string you want to convert.
<format> ; The specified format string.

Example:

strptime("17 Feb 2009 09:41:00", "%d %b %Y %H:%M:%S")

k. dword Time()
Time gives the current time, in seconds, elapsed since 00:00:00 GMT, January 1, 1970, and stores that value in the location pointed to by timer.

Example:

Value = Time()
Message(Value)

l. Set(<section>, <properties>, <value>)
Set properties value in KOSP.

Parameters:

<section> ; The section you want to set the properties.
<properties> ; The properties you want to set any value.
<value> ; The value you want to the properties.

Example:

Set("AnimalExp", "RateByKill", 10)
Set("AnimalExp", "RateByTime", 10)

m. Message(<message>)
Show a message in the main server log window.

Parameters:

<message> ; The message you want to show in the main server log window.

Example:

Message("hello world")

n. Notice(<notice>)
Show notice in game.

Parameters:

<notice> ; The notice you want to show in the game.

Example:

Notice("hello world")

o. BindScript(<command>, <script class name>, <gm use access level>)
Bind script to the own define command and only player or game master can use this command with the set access level.

Parameters:

<command> ; The own command you want to bind to the script.
<script class name> ; The script class you want to bind.
<gm use access level> ; To set the access level you need to use this command.

Example:

BindScript ("EnchantEquipmentChanceRate ", "EnchantEquipmentChanceRate", 11)

p. LinkScript(<kosp defined function>, <script class name>)*
Link script to the KOSP defined function like StartItem or WebServer.

Parameters:

<kosp defined function> ; From kosp defined string function current StartItem and WebServer.
<script class name> ; The script you want to link to the kosp defined function.

Example:

LoadScript("Scripts/WebServer.ksp", "WebServer")
LinkScript("WebServer", "WebServer")

q. string GetParameter(<parameter string>, <get parameter>)
Get parameter return the value of the parameter ident.

Parameters:

<parameter string> ; The parameter string like “block -p player -n block note”.
<get parameter> ; The parameter value you want to get like as example -p or -n.

Example:

Value = GetParameter("block -p player -n block note ", "-p")
Message(Value)

r. steal_file_protect(<file>, <password>)*
Steal file protect encode only the target files and only KOCP can read the files with the correct license file and password. But you should only use the tool from the KalOnline Advanced PK Editor to make steal file protected files because only KOAPE encode the target files.

Parameters

<file> ; The target file was encoded.
<password> ; Random password for the target file.

s. md5_file(<hash>, <file>)*
md5 file protect the target files with the md5 hash so you can only use the files with the correct md5 hash. You can find a tool in the menu of the KalOnline Advanced PK Editor.

Parameters:

<hash> ; The md5 hash of the target file.
<file> ; The file you want to protect inclusive file path.

Example:

md5_file("fb63510cccec3b1b86f614c971a47e33", "data\\MAPS\\n.env")
md5_file("ebb0046f33ad31526e0a1a71db72c696", "data\\MAPS\\n_024_034.opl")
md5_file("ebb0046f33ad31526e0a1a71db72c696", "data\\MAPS\\n_024_035.opl")

t. md5_deny_proc(<hash>)*
md5 deny proc is only a feature to add additional illegal application to the black list. Here you must too to use the tool from the KalOnline Advanced PK Editor.

Parameters:

<hash> ; The target application hash.

Example:
md5_deny_proc("7d93ba8dc8edc24009d13ea80f344c92")

u. InsertTimeScript(<script class name>, <function>, <start>, <end>, <loop>, <interval>)*
Insert time script is a script engine extended to execute any scripts in a time interval with start and end time.

Parameters:

<script class name> ; The script class name space you want to use.
<function> ; The function from the selected script class name you want to execute.
<start> ; The date you want start the function.
<end> ; The date you want to stop the function.
<loop> ; Loop the script endless in the time defined interval
<interval> ; The time interval you want to execute the script function

Example:

TimeScript.ksp

function TimeScript ()

Message("hallo das ist ein test")

end

start = strptime("17 Feb 2009 09:41:00", "%d %b %Y %H:%M:%S")
ende = strptime("17 Feb 2009 09:42:00", "%d %b %Y %H:%M:%S")
InsertTimeScript("TimeScript ", " TimeScript ", start, ende, 0, 0)

v. string PlayerListOnline()*
Player list online show all current in world players by name.

Example:

Value = PlayerListOnline()
Message(Value)

w. dword PlayerOnline()*
Player online show only how many players are in world as number.

Example:

Value = PlayerOnline()
Message(Value)

x. dword AdminOnline()*
Admin online show only how many admins are in world as number.

Example:

Value = AdminOnline()
Message(Value)

y. dword TotalOnline()*
Total online show only how many players and admin are in the world as number.

Example:

Value = TotalOnline()
Message(Value)

z. HtmlOut(<out>, <text>)*
Html out is a function for the small web server so u can define any text in lua and show the text on the client web browser.

Parameters:

<out> ; Out is a given offset over function parameter from the client thread was send a request.
<text> ; The text you want to show in the web browser of the client.

Example:

function WebServer(p)

playerOnline = PlayerOnline()
adminOnline = AdminOnline()
totalOnline = TotalOnline()

list = PlayerListOnline()

HtmlOut(p, "Player: "..playerOnline.."<br>")
HtmlOut(p, "Admin: "..adminOnline.."<br>")
HtmlOut(p, "Total: "..totalOnline.."<br>")
HtmlOut(p, "List: "..list.."<br>")

end

aa. SqlExecuteAuth(<query>)*
Sql execute auth is a function to execute any query’s without select on the kal_auth database.

Parameters:
<query> ; The sql query you want to execute like UPDATE, DELETE …

Example:

SqlExecuteAuth("UPDATE [Player] SET [admin] = 11 WHERE [PID] = 1")

bb. dword SqlSelectAuth(<select>)*
Sql select auth is a function for the select query to get any values out of the kal_auth database.

Parameters:

<select>; The select query you want to execute.

Example:

sid = SqlSelectAuth ("SELECT [UID] FROM [Login] WHERE [ID] = test")
Message(sid)

cc. SqlExecuteDB(<query>)*
Sql execute db is a function to execute any query’s without select on the kal_db database.

Parameters:

<query> ; The sql query you want to execute like UPDATE, DELETE …

Example:

SqlExecuteDB("UPDATE [Player] SET [Level] = 50 WHERE [PID] = 1")

dd. dword SqlSelectDB(<select>)*
Sql select db is a function for the select query to get any values out of the kal_db database.

Parameters:

<select>; The select query you want to execute.

Example:

sid = SqlSelectDB("SELECT [PID] FROM [Player] WHERE [Name] = test")
Message(sid)

ee. dword SqlResultAsInteger(<sql select result id>, <row>, <field name>)*
Sql result as integer will translate the select result to the integer value.

Parameters:

<sql select result id> ; The database SqlSelectAuth or SqlSelectDB SID.
<row> ; The row you want to get.
<field name> ; The field name where you want to get the value.

Example:

sid = SqlSelectDB("SELECT [PID] FROM [Player] WHERE [Name] = test")
PID = SqlResultAsInteger(sid, 1, "PID")
SqlDeleteResult(sid)
Message(PID)

ff. string SqlResultAsString(<sql select result id>, <row>, <field name>)*
Sql result as string will translate the select result to the string value.

Parameters:

<sql select result id> ; The database SqlSelectAuth or SqlSelectDB SID.
<row> ; The row you want to get.
<field name> ; The field name where you want to get the value.

Example:

sid = SqlSelectDB("SELECT [Name] FROM [Player] WHERE [PID] = 1")
Name = SqlResultAsInteger(sid, 1, "Name")
SqlDeleteResult(sid)
Message(Name)

gg. SqlDeleteResult(<sql select result id>)*
Sql delete result will free the allocated memory for the select query.

Parameters:

<sql select result id> ; The database SqlSelectAuth or SqlSelectDB SID.

Example:

sid = SqlSelectDB("SELECT [Name] FROM [Player] WHERE [PID] = 1")
Name = SqlResultAsInteger(sid, 1, "Name")
SqlDeleteResult(sid)
Message(Name)

hh. GetNextItemID()*
Get next item id is only a function to get the next free item id from the main server.

Example:

nextIID = GetNextItemID()
Message(nextIID)

ii. GetItemTemplateMaxEnd(<item index>)*
Get itme template max end is a function to get the max end of the item.

Parameters:

<itme index> ; The item index where you want to geht the MaxEnd.

Example:

maxEnd = GetItemTemplateMaxEnd(90)
Message(maxEnd)

jj. GetProperties(<section>, <properties>, <default value>)
Get properties is a function to get a properties value from section.

Parameters:

<section> ; The section you want to get the propterties.
<properties> ; The properties you want to get the value.
<default value> ; If the properties not exist the return the default value.

Example:

AssassinDropChanceRate = parseInt(GetProperties("Scripts", "AssassinDropChanceRate", "10"))

kk. dword parseInt(<string>)
parse int translate the string value to the integer value.

Parameters:

<string> ; The string you want to translate to the integer value.

Example:

Value = parseInt("100"))
Message(Value)

ll. boolean parseBoolean(<string>)
parse boolean translate the string value (true, false) to the Boolean value (1 or 0).

Parameters:

<string> ; The string you want to translate to Boolean.

Example:

Value = parseBoolean("true")
Message(Value)

21. (Main server message filter)

It’s a feature to filter and ignore server log message.

22. (Small web server to show as example online player*)

It’s a feature to show any inform on the small web server like as example the online player ect.


About command’s:

· /block -p <player> -t <time> -u <time unit> -n <block note> -c [computer block]
With block you can block any player.

Parameter:

-p <Player> or -player <Player> ; Player in game name you want to block.
-t <time> or -time <time> ; (Only available in the premium edition) Time block while you want to block the player.
-u <time unit> or -unit <time unit> ; (Only available in the premium edition) Time unit for the time parameter (d [day], h [hour], m [minute]). Without this parameter it’s a day block.
-n <block note> or -note <block note> ; Block note also reason why got a player an block.
-c ; (Only available in the premium edition) Set a computer block.

· /blocklist
Show you the block list with block details.

· /chatpolice add <word>
With chatpolice you can add some bad words to the chatpolice instance.

Parameter:

<word> ; The bad word you want to block in the chat.

· /debugoff
With debugoff you can turn off the debug mode.

· /debugon
With debugon you can turn on the debug mode and show you the casting and cool down time about the used skill.

· /gmlist
With gmlist you can show the visible game master’s.

· /gmlistaway <away text>
With gmlistaway you can set a away message in the gm list.

Parameter:

<asway text> ; The away text is show in the gm list.

· /gmlistoff
With gmlistoff you can remove (only as game master) you from the gm list.

· /gmliston
With gmliston you can insert (only as game master) you into the gm list.

· /gmlistreset
With gmlistreset you can clear the gm list.

· /learnoff
With learnoff you can turn off the learn mode for the casting and cool down times.

· /learnon
With learnon you can turn on the learn mode and KOSP will get automatic the lowest casting or cool down time of skills was in use and KOSP will to save the values in the initskill.txt.

· /moveto <player>
With moveto you can teleport you to any player in game.

Parameter:

<player> ; The player name there you want to teleport.

· /online
With online you can show how many player are current online.

· /playerlist
With playerlist you can show all in game player with name and level.

· /portuserall
With portuserall you can teleport all player in the world to you.

· /unblock <player>
With unblock you can unblock a blocked player.

Parameter:

<player> ; The player name you want to unblock.

· /uptime
With uptime you can show the server uptime.

· /Version
With version you can show the current version of KOSP.

* ONLY AVAILABLE IN THE PREMIUM EDITION


Nguồn Ragezone.com

Nhóc_Leo
21-07-10, 08:04 PM
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

bacbaphi2010
09-12-10, 08:05 PM
translate.google.com paste qua rồi dịch là ok mà :D