- Joined
- Apr 1, 2010
- Messages
- 19
- Reaction score
- 1
PART 1 - get in touch with some basic knowledge
In this tutorial we'll find some script files like this one:
Code:
#DEFINE PRINT_ROW
<ID>
<INTEGER>
<STRING>
<STRING>
<INTEGER>
#ENDDEFINE
PRINT_ROW 1, 0 "Some text will appear in the output program.", "Some text will tell you something", 0
#END
Code:
; Print Row system
; Author name, Data, Rev
#DEFINE PRINT_ROW
<ID>
<INTEGER>
<STRING>
<STRING>
<INTEGER>
#ENDDEFINE
; PRINT_ROW is a row matrix that contains defined value (a, b, c, d, n+1), in our case will be (id, int, string, string, int)
; The value <ID> tells to the output program to add 1 row
; The value integer is an integer number, like 0 2 or maybe 58! It can be used for tell to the program that our service is running on some port
; These script files can also include other minor files, we can use the #INCLUDE Directive for include another file in our script
PRINT_ROW 1, 0 "Some text will appear in the output program.", "Some text will tell you something", 0
#END ; Leaving blank the end directive will cause the output service/program not working properly, be sure to add it at the end of the script.
PART 2 - Editing
In this part we will edit all the necessary files.
Go to -> /Data
-> IMPORT from \9Data\Hero and from ResSystem Folder located in your client
AbState.shn
ActiveSkill.shn
CharacterTitleData.shn
ChargedEffect.shn
ClassName.shn
DefaultCharacterData.txt
itemInfo.shn
ItemShopView.shn
ItemViewInfo.shn
KingdomQuest.shn
MapInfo.shn
MobInfo.shn
PassiveSkill.shn
PassiveSkillView.shn
QuestData.shn
QuestDialog.shn
RaceNameInfo.info
Go To -> \Data\serverinfo
OPEN ServerInfoList.otd
CHECK IF
SERVER_SCRIPTOR row contain "Data\serverinfo\OPToolServerInfo-CHR"
if not, edit and save it.
OPEN OPToolServerInfo-CHR.otd
EDIT it to your own if you have some service/port setted up differently:
Code:
; -----------------------------------
; Server info for OPTool
; 2015.06 By DreamEvil
; -----------------------------------
#DEFINE SERVER_INFO
<ID>
<STRING>
<STRING>
<STRING>
<INTEGER>
<INTEGER>
<INTEGER>
#ENDDEFINE
; -----------------------------------
SERVER_INFO -1, " ", "", "", 0, 0, 0
; -----------------------------------
; Account, AccountLog, Login services
; -----------------------------------
SERVER_INFO 1, "_Villian_Account_DB", "PG_Account_DB", "127.0.0.1", 9000, 0, 0
SERVER_INFO 2, "_Villian_AccountLog_DB", "PG_AccountLog_DB", "127.0.0.1", 9005, 0, 0
SERVER_INFO 0, "_Villian_Login", "PG_Login", "127.0.0.1", 9016, 0, 0
; -----------------------------------
SERVER_INFO -1, " ", "", "", 0, 0, 0
; -----------------------------------
; GameLog, Character, WM, Zone services
; -----------------------------------
; Service name displayed, Service Name, IP, Port
; -----------------------------------
SERVER_INFO 6, "_Villian_GameLog_00", "PG_GameLog_00", "127.0.0.1", 9101, 0, 0
SERVER_INFO 5, "_Villian_Character_00", "PG_Character_00", "127.0.0.1", 9100, 0, 0
SERVER_INFO 4, "_Villian_WorldManager_00", "PG_WorldManager_00", "127.0.0.1", 9116, 0, 0
SERVER_INFO 7, "_Villian_Zone00", "Zone00" "127.0.0.1", 9121, 0, 0
SERVER_INFO 7, "_Villian_Zone01", "Zone01" "127.0.0.1", 9123, 0, 1
SERVER_INFO 7, "_Villian_Zone02", "Zone02" "127.0.0.1", 9125, 0, 2
SERVER_INFO 7, "_Villian_Zone03", "Zone03" "127.0.0.1", 9127, 0, 3
SERVER_INFO 7, "_Villian_Zone04", "Zone04" "127.0.0.1", 9129, 0, 4
; -----------------------------------
#INCLUDE "OPToolServerInfo-Common"
; -----------------------------------
#END
OPEN OPToolServerInfo-Common.otd
Code:
; -----------------------------------
; Server info common for OPTool
; 2015.06 By DreamEvil
; -----------------------------------
; DEFINE PART
; -----------------------------------
#DEFINE SERVER_LIST
<INTEGER>
<INTEGER>
<INTEGER>
<STRING>
<STRING>
#ENDDEFINE
; -----------------------------------
; This is not really necessary
; -----------------------------------
; DEFINE PATCH_NOTICE_URL
; STRING
; ENDDEFINE
; -----------------------------------
; This is not really necessary
; -----------------------------------
; DEFINE LAUNCHER_NOTICE_URL
; STRING
; ENDDEFINE
; -----------------------------------
#DEFINE NET_ACCOUNT
<STRING>
<STRING>
<STRING>
<STRING>
#ENDDEFINE
; -----------------------------------
#DEFINE ODBC_DATA_SOURCE
<STRING>
<STRING>
#ENDDEFINE
; -----------------------------------
#DEFINE ODBC_INFO
<STRING>
<INTEGER>
<INTEGER>
<INTEGER>
<STRING>
<STRING>
#ENDDEFINE
; -----------------------------------
; Data Part
; -----------------------------------
SERVER_LIST 0, 0, 0, "YourServerName", "YourServerName"
; -----------------------------------
; This is not really necessary
; -----------------------------------
; PATCH_NOTICE_URL ""
; LAUNCHER_NOTICE_URL ""
; -----------------------------------
; INFO For NET_ACCOUNT: Service Name, IP, UID = YourLoginID, PASSWORD= YourPassword
; -----------------------------------
NET_ACCOUNT "PG_LoginServer", "127.0.0.1", "UID", "PASSWORD"
NET_ACCOUNT "PG_Account_DB", "127.0.0.1", "UID", "PASSWORD"
NET_ACCOUNT "PG_AccountLog_DB", "127.0.0.1", "UID", "PASSWORD"
; -----------------------------------
NET_ACCOUNT "PG_Character_00", "127.0.0.1", "UID", "PASSWORD"
NET_ACCOUNT "PG_GameLog_00", "127.0.0.1", "UID", "PASSWORD"
NET_ACCOUNT "PG_WorldManager_00", "127.0.0.1", "UID", "PASSWORD"
NET_ACCOUNT "PG_Zone_00", "127.0.0.1", "UID", "PASSWORD"
NET_ACCOUNT "PG_Zone_01", "127.0.0.1", "UID", "PASSWORD"
NET_ACCOUNT "PG_Zone_02", "127.0.0.1", "UID", "PASSWORD"
NET_ACCOUNT "PG_Zone_03", "127.0.0.1", "UID", "PASSWORD"
NET_ACCOUNT "PG_Zone_04", "127.0.0.1", "UID", "PASSWORD"
; -----------------------------------
; ODBC PART , Server="YourServerInstance"
; -----------------------------------
ODBC_DATA_SOURCE "Account", "DSN=Account, Description=Account, Server=YourServerInstance\SQLEXPRESS,"
ODBC_DATA_SOURCE "AccountLog", "DSN=AccountLog, Description=AccountLog, Server=YourServerInstance\SQLEXPRESS,"
ODBC_DATA_SOURCE "OperatorTool", "DSN=OperatorTool, Description=OperatorTool, Server=YourServerInstance\SQLEXPRESS,"
ODBC_DATA_SOURCE "StatisticsData", "DSN=StatisticsData, Description=StatisticsData, Server=YourServerInstance\SQLEXPRESS,"
ODBC_DATA_SOURCE "World00_Character", "DSN=World00_Character, Description=World00_Character, ServerYourServerInstance\SQLEXPRESS,"
ODBC_DATA_SOURCE "World00_GameLog", "DSN=World00_GameLog, Description=World00_GameLog, Server=YourServerInstance\SQLEXPRESS,"
; -----------------------------------
ODBC_INFO "Account", 0, 0, 0, "DSN=Account; UID=uid; PWD=PASSWORD", "USE Account; SET LOCK_TIMEOUT 5000"
ODBC_INFO "AccountLog", 0, 0, 1, "DSN=AccountLog; UID=uid; PWD=PASSWORD", "USE AccountLog; SET LOCK_TIMEOUT 5000"
ODBC_INFO "OperatorTool", 0, 0, 5, "DSN=OperatorTool; UID=uid; PWD=PASSWORD", "USE OperatorTool; SET LOCK_TIMEOUT 5000"
ODBC_INFO "StatisticsData", 0, 0, 6, "DSN=StatisticsData; UID=uid; PWD=PASSWORD", "USE StatisticsData; SET LOCK_TIMEOUT 5000"
ODBC_INFO "World00_Character", 0, 0, 2, "DSN=World00_Character; UID=uid; PWD=PASSWORD", "USE World00_Character; SET LOCK_TIMEOUT 5000"
ODBC_INFO "World00_GameLog", 0, 0, 3, "DSN=World00_GameLog; UID=uid; PWD=PASSWORD", "USE World00_GameLog; SET LOCK_TIMEOUT 5000"
; -----------------------------------
#END
With this tutorial you can easly get your optool fully working or almost.
GO TO /DataPART 3 - Reversing
ADD a Folder named "ServerNotifyScheduler"
ADD a file named "NotifySchedule" in that folder.
Code:
; -------------------------
; Notify Scheduler Scriptor (Example for try to fix this function)
; 2015.06 By DreamEvil
; -------------------------
; -------------------------
; Define Section
; -------------------------
#DEFINE NOTIFY_SCHEDULE
; I need to define all the value neeeded
#ENDDEFINE
; ------------------
; Data Section
; ------------------
; Now you can start developing... have fun!
#END
Last edited: