Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
385 lines
14 KiB
XML
385 lines
14 KiB
XML
<?xml version="1.0" encoding="utf-8" ?>
|
|
<!--
|
|
################################################
|
|
## ##
|
|
## RYL mcf & gsf file editor ##
|
|
## ##
|
|
## (C) 2006 & 2007 AlphA ##
|
|
## ##
|
|
## This source is for private development. ##
|
|
## You can have this source only with the ##
|
|
## owners permission. ##
|
|
## ##
|
|
################################################
|
|
|
|
<cell type=[Known data type] name=[Header name] col=[column number] hide=[yes/no] val=[def. value] replace=[table ID] />
|
|
|
|
Known data types:
|
|
byte - 1 byte
|
|
i16 - signed 16bit(2 byte) integer
|
|
ui16 - unsigned 16bit(2 byte) integer
|
|
i32 - signed 32bit(4 byte) integer
|
|
ui32 - unsigned 32bit(4 byte) integer
|
|
float - 32bit single (4 byte) floating point value
|
|
char[len] - string with the specified length of bytes
|
|
|
|
Cell name:
|
|
The name that will be the header of this column
|
|
|
|
Cell hide:
|
|
The cell will not be written to output but will be written
|
|
on compiling to gsf. Cell val has to be specified.
|
|
|
|
Cell col:
|
|
The position of the col in the resulting table. Starts from 1
|
|
|
|
Cell hex:
|
|
Set to 1 on integer or byte types to display and parse the data as hex
|
|
|
|
Cell endtag:
|
|
For char[] types only: The byte value what to take as the ending of the text
|
|
Default is 0x0. This tag will be added upon compiling.
|
|
|
|
Cell multiplier:
|
|
for float/int types and no replacement can be in use in the same time:
|
|
Multiplies the number from binary with the given number. By saving it divides.
|
|
|
|
Cell replace:
|
|
This col will be replaced with another value if it maches any inputs in the
|
|
replacement table with the given ID
|
|
|
|
Cell redir_case:
|
|
IN/OU - will the col be used in the template searching procedures or not.
|
|
|
|
Linesplit val:
|
|
The value the type has to have to make a line split (start a new line)
|
|
Can be in normal 10(0-9) integer and 16(0-F) style hex(prefixed with a 0x)
|
|
This column is read in after parsing all the cells. If the linesplit cant be
|
|
recognized it wont move to a new line, it just starts adding new cols from the
|
|
cells start again.
|
|
-->
|
|
<gsf>
|
|
<file name="ItemScript" version="1600">
|
|
<replacements>
|
|
<replacement id="1">
|
|
<elem to="SHIRT" from="1" />
|
|
<elem to="TUNIC" from="2" />
|
|
<elem to="CON_ARMOUR" from="3" />
|
|
<elem to="CON_HELM" from="4" />
|
|
<elem to="CON_GLOVE" from="5" />
|
|
<elem to="CON_BOOTS" from="6" />
|
|
<elem to="DEX_ARMOUR" from="7" />
|
|
<elem to="DEX_HELM" from="8" />
|
|
<elem to="DEX_GLOVE" from="9" />
|
|
<elem to="DEX_BOOTS" from="10" />
|
|
<elem to="ONEHANDED_SWORD" from="11" />
|
|
<elem to="TWOHANDED_SWORD" from="12" />
|
|
<elem to="ONEHANDED_AXE" from="13" />
|
|
<elem to="TWOHANDED_AXE" from="14" />
|
|
<elem to="ONEHANDED_BLUNT" from="15" />
|
|
<elem to="TWOHANDED_BLUNT" from="16" />
|
|
<elem to="BOW" from="17" />
|
|
<elem to="CROSSBOW" from="18" />
|
|
<elem to="STAFF" from="19" />
|
|
<elem to="DAGGER" from="20" />
|
|
<elem to="SHIELD" from="21" />
|
|
<elem to="CON_BODY" from="22" />
|
|
<elem to="CON_HEAD" from="23" />
|
|
<elem to="CON_PELVIS" from="24" />
|
|
<elem to="CON_PROTECT_A" from="25" />
|
|
<elem to="DEX_BODY" from="26" />
|
|
<elem to="DEX_HEAD" from="27" />
|
|
<elem to="DEX_PELVIS" from="28" />
|
|
<elem to="DEX_PROTECT_A" from="29" />
|
|
<elem to="COM_BLUNT" from="30" />
|
|
<elem to="COM_SWORD" from="31" />
|
|
<elem to="OPP_HAMMER" from="32" />
|
|
<elem to="OPP_AXE" from="33" />
|
|
<elem to="OPP_SLUSHER" from="34" />
|
|
<elem to="OPP_TALON" from="35" />
|
|
<elem to="OPP_SYTHE" from="36" />
|
|
<elem to="SKILL_A_GUARD" from="37" />
|
|
<elem to="SKILL_A_ATTACK" from="38" />
|
|
<elem to="SKILL_A_GUN" from="39" />
|
|
<elem to="SKILL_A_KNIFE" from="40" />
|
|
<elem to="ARROW" from="41" />
|
|
<elem to="BOLT" from="42" />
|
|
<elem to="AMMO" from="43" />
|
|
<elem to="POTION" from="44" />
|
|
<elem to="EXPBOOK" from="45" />
|
|
<elem to="CASHBOOK" from="46" />
|
|
<elem to="EVENT_LOTTERY" from="47" />
|
|
<elem to="PORTAL" from="48" />
|
|
<elem to="FIRE_CRACKER" from="49" />
|
|
<elem to="SKILLBOOK" from="50" />
|
|
<elem to="GEM" from="51" />
|
|
<elem to="ORE" from="52" />
|
|
<elem to="ETC" from="53" />
|
|
<elem to="EVENT_DROP" from="54" />
|
|
<elem to="CAMP_KIT" from="55" />
|
|
<elem to="SHORT_RANGE_ARMS_KIT" from="56" />
|
|
<elem to="LONG_RANGE_ARMS_KIT" from="57" />
|
|
<elem to="AIRSHIP_KIT" from="58" />
|
|
<elem to="WORLDWEAPON_K_KIT" from="59" />
|
|
<elem to="WORLDWEAPON_M_KIT" from="60" />
|
|
<elem to="MINERAL_KIT" from="61" />
|
|
<elem to="QUEST_ITEM" from="62" />
|
|
<elem to="NECKLACE" from="63" />
|
|
<elem to="RING" from="64" />
|
|
<elem to="RUNE" from="65" />
|
|
</replacement>
|
|
<replacement id="2">
|
|
<elem to="NONE" from="0" />
|
|
<elem to="STR" from="1" />
|
|
<elem to="DEX" from="2" />
|
|
<elem to="CON" from="3" />
|
|
<elem to="INT" from="4" />
|
|
<elem to="WIS" from="5" />
|
|
<elem to="LEVEL" from="6" />
|
|
</replacement>
|
|
<replacement id="3">
|
|
<elem to="X" from="7" />
|
|
<elem to="F" from="6" />
|
|
<elem to="D" from="5" />
|
|
<elem to="C" from="4" />
|
|
<elem to="B" from="3" />
|
|
<elem to="A" from="2" />
|
|
<elem to="AA" from="1" />
|
|
<elem to="AAA" from="0" />
|
|
</replacement>
|
|
<replacement id="4">
|
|
<elem to="X" from="0" />
|
|
<elem to="O" from="1" />
|
|
</replacement>
|
|
</replacements>
|
|
</file>
|
|
<file name="ItemScript" version="1700">
|
|
<replacements>
|
|
<replacement id="1">
|
|
<elem to="SHIRT" from="1" />
|
|
<elem to="TUNIC" from="2" />
|
|
<elem to="CON_ARMOUR" from="3" />
|
|
<elem to="CON_HELM" from="4" />
|
|
<elem to="CON_GLOVE" from="5" />
|
|
<elem to="CON_BOOTS" from="6" />
|
|
<elem to="DEX_ARMOUR" from="7" />
|
|
<elem to="DEX_HELM" from="8" />
|
|
<elem to="DEX_GLOVE" from="9" />
|
|
<elem to="DEX_BOOTS" from="10" />
|
|
<elem to="ONEHANDED_SWORD" from="11" />
|
|
<elem to="TWOHANDED_SWORD" from="12" />
|
|
<elem to="ONEHANDED_AXE" from="13" />
|
|
<elem to="TWOHANDED_AXE" from="14" />
|
|
<elem to="ONEHANDED_BLUNT" from="15" />
|
|
<elem to="TWOHANDED_BLUNT" from="16" />
|
|
<elem to="BOW" from="17" />
|
|
<elem to="CROSSBOW" from="18" />
|
|
<elem to="STAFF" from="19" />
|
|
<elem to="DAGGER" from="20" />
|
|
<elem to="SHIELD" from="21" />
|
|
<elem to="CON_BODY" from="22" />
|
|
<elem to="CON_HEAD" from="23" />
|
|
<elem to="CON_PELVIS" from="24" />
|
|
<elem to="CON_PROTECT_A" from="25" />
|
|
<elem to="DEX_BODY" from="26" />
|
|
<elem to="DEX_HEAD" from="27" />
|
|
<elem to="DEX_PELVIS" from="28" />
|
|
<elem to="DEX_PROTECT_A" from="29" />
|
|
<elem to="COM_BLUNT" from="30" />
|
|
<elem to="COM_SWORD" from="31" />
|
|
<elem to="OPP_HAMMER" from="32" />
|
|
<elem to="OPP_AXE" from="33" />
|
|
<elem to="OPP_SLUSHER" from="34" />
|
|
<elem to="OPP_TALON" from="35" />
|
|
<elem to="OPP_SYTHE" from="36" />
|
|
<elem to="SKILL_A_GUARD" from="37" />
|
|
<elem to="SKILL_A_ATTACK" from="38" />
|
|
<elem to="SKILL_A_GUN" from="39" />
|
|
<elem to="SKILL_A_KNIFE" from="40" />
|
|
<elem to="ARROW" from="41" />
|
|
<elem to="BOLT" from="42" />
|
|
<elem to="AMMO" from="43" />
|
|
<elem to="POTION" from="44" />
|
|
<elem to="EXPBOOK" from="45" />
|
|
<elem to="CASHBOOK" from="46" />
|
|
<elem to="EVENT_LOTTERY" from="47" />
|
|
<elem to="PORTAL" from="48" />
|
|
<elem to="FIRE_CRACKER" from="49" />
|
|
<elem to="SKILLBOOK" from="50" />
|
|
<elem to="GEM" from="51" />
|
|
<elem to="ORE" from="52" />
|
|
<elem to="ETC" from="53" />
|
|
<elem to="EVENT_DROP" from="54" />
|
|
<elem to="CAMP_KIT" from="55" />
|
|
<elem to="SHORT_RANGE_ARMS_KIT" from="56" />
|
|
<elem to="LONG_RANGE_ARMS_KIT" from="57" />
|
|
<elem to="AIRSHIP_KIT" from="58" />
|
|
<elem to="WORLDWEAPON_K_KIT" from="59" />
|
|
<elem to="WORLDWEAPON_M_KIT" from="60" />
|
|
<elem to="MINERAL_KIT" from="61" />
|
|
<elem to="QUEST_ITEM" from="62" />
|
|
<elem to="NECKLACE" from="63" />
|
|
<elem to="RING" from="64" />
|
|
<elem to="RUNE" from="65" />
|
|
</replacement>
|
|
<replacement id="2">
|
|
<elem to="NONE" from="0" />
|
|
<elem to="STR" from="1" />
|
|
<elem to="DEX" from="2" />
|
|
<elem to="CON" from="3" />
|
|
<elem to="INT" from="4" />
|
|
<elem to="WIS" from="5" />
|
|
<elem to="LEVEL" from="6" />
|
|
</replacement>
|
|
<replacement id="3">
|
|
<elem to="X" from="7" />
|
|
<elem to="F" from="6" />
|
|
<elem to="D" from="5" />
|
|
<elem to="C" from="4" />
|
|
<elem to="B" from="3" />
|
|
<elem to="A" from="2" />
|
|
<elem to="AA" from="1" />
|
|
<elem to="AAA" from="0" />
|
|
</replacement>
|
|
<replacement id="4">
|
|
<elem to="X" from="0" />
|
|
<elem to="O" from="1" />
|
|
</replacement>
|
|
</replacements>
|
|
</file>
|
|
<file name="Script1">
|
|
<structure>
|
|
<cells size="14" hascolumns="0">
|
|
<cell type="char[14]" name="Bad_word" />
|
|
</cells>
|
|
<linesplit type="byte" val="0" />
|
|
</structure>
|
|
</file>
|
|
<file name="Chemical">
|
|
<structure>
|
|
<cells size="9" hascolumns="1">
|
|
<cell type="ui16" name="Pick_item" col="1" />
|
|
<cell type="ui16" name="Put_item" col="3" />
|
|
<cell type="ui16" name="Result_item" col="5" />
|
|
<cell type="byte" name="Pick_item_num" col="2" />
|
|
<cell type="byte" name="Put_item_num" col="4" />
|
|
<cell type="byte" name="Result_item_num" col="6" />
|
|
</cells>
|
|
<linesplit type="byte" val="0" />
|
|
</structure>
|
|
</file>
|
|
<file name="SpecialCompensation">
|
|
<structure>
|
|
<cells size="2" hascolumns="0">
|
|
<cell type="ui16" name="Item" />
|
|
</cells>
|
|
<linesplit type="ui16" val="0" />
|
|
</structure>
|
|
</file>
|
|
<file name="SkillScript">
|
|
<structure>
|
|
<cells size="516" hascolumns="1">
|
|
<cell type="char[32]" name="EffectFlag" col="20" />
|
|
<cell type="char[32]" name="HitFlag" col="21" />
|
|
<cell type="char[32]" name="CastingFlag" col="19" />
|
|
<cell type="char[64]" name="Name[5]" col="4" />
|
|
<cell type="char[32]" name="DDS" col="24" />
|
|
<cell type="ui16" name="MinX" col="25" />
|
|
<cell type="ui16" name="MinY" col="26" />
|
|
<cell type="ui16" name="MaxX" col="27" />
|
|
<cell type="ui16" name="MaxY" col="28" />
|
|
<cell type="char[256]" name="Text" col="37" endtag="0x0A" />
|
|
<cell type="ui32" name="Type" col="2" replace="1" />
|
|
<cell type="ui32" name="Target" col="10" replace="2" />
|
|
<cell type="ui32" name="Limit" col="5" replace="4" />
|
|
<cell type="ui16" name="Stat[0]" col="6" replace="3" />
|
|
<cell type="ui16" name="Value[0]" col="7" />
|
|
<cell type="ui16" name="ID" col="1" hex="1" />
|
|
<cell type="ui16" name="StartMP" col="14"/>
|
|
<cell type="ui16" name="LevelMP" col="15"/>
|
|
<cell type="ui16" name="LockAdd" col="16"/>
|
|
<cell type="ui16" name="StartTick" col="17"/>
|
|
<cell type="ui16" name="LevelTick" col="18"/>
|
|
<cell type="ui16" name="Parent" col="35" hex="1" />
|
|
<cell type="ui16" name="Child" col="36" hex="1" />
|
|
<cell type="ui32" name="CoolDownTime" col="22"/>
|
|
<cell type="float" name="mRange" col="11" />
|
|
<cell type="float" name="Range" col="12" />
|
|
<cell type="float" name="Region" col="13" />
|
|
<cell type="byte" name="Protection" col="31" />
|
|
<cell type="byte" name="Gauge" col="34" />
|
|
<cell type="byte" name="ClassSkill" col="3" />
|
|
<cell type="byte" name="Interrupt" col="32" />
|
|
<cell type="byte" name="Counter" col="33" />
|
|
<cell type="byte" name="EndScript" col="30" />
|
|
<cell type="byte" name="EndCoolDown" col="23" />
|
|
<cell type="byte" name="Hit" col="29" />
|
|
<cell type="ui16" name="Stat[1]" col="8" replace="3" />
|
|
<cell type="ui16" name="Value[1]" col="9" />
|
|
</cells>
|
|
</structure>
|
|
<replacements>
|
|
<replacement id="1">
|
|
<elem to="NONE" from="0" />
|
|
<elem to="PASSIVE" from="1" />
|
|
<elem to="INSTANCE" from="2" />
|
|
<elem to="CAST" from="3" />
|
|
<elem to="CHANT" from="4" />
|
|
<elem to="ITEM" from="6" />
|
|
<elem to="SET" from="7" />
|
|
<elem to="ACTION" from="8" />
|
|
</replacement>
|
|
<replacement id="2">
|
|
<elem to="NONE" from="0" />
|
|
<elem to="MELEE" from="1" />
|
|
<elem to="FRIEND" from="2" />
|
|
<elem to="ENEMY" from="3" />
|
|
<elem to="FRDEAD" from="4" />
|
|
<elem to="PARTY" from="8" />
|
|
<elem to="FREXME" from="9" />
|
|
<elem to="SUMMON" from="11" />
|
|
</replacement>
|
|
<replacement id="3">
|
|
<elem to="NONE" from="0" />
|
|
<elem to="STR" from="1" />
|
|
<elem to="DEX" from="2" />
|
|
<elem to="CON" from="3" />
|
|
<elem to="INT" from="4" />
|
|
<elem to="WIS" from="5" />
|
|
<elem to="LEVEL" from="6" />
|
|
</replacement>
|
|
<replacement id="4">
|
|
<elem to="NONE" from="0" />
|
|
<elem to="FORFIGHTER" from="1" />
|
|
<elem to="WITHDAGGER" from="5" />
|
|
<elem to="RANGED" from="7" />
|
|
<elem to="GUARDARM" from="9" />
|
|
<elem to="WITHWEAPON" from="10" />
|
|
<elem to="ATTACKARM" from="11" />
|
|
<elem to="GUNARM" from="12" />
|
|
<elem to="KNIFEARM" from="13" />
|
|
</replacement>
|
|
</replacements>
|
|
<rules>
|
|
<repeatemptyline listentocol="3" onvalue="1" repeat="4" />
|
|
</rules>
|
|
</file>
|
|
<file name="MonsterProtoType" version="1600">
|
|
<replacements>
|
|
<replacement id="1">
|
|
<elem to="X" from="0" />
|
|
<elem to="O" from="1" />
|
|
</replacement>
|
|
</replacements>
|
|
</file>
|
|
<file name="MonsterProtoType" version="1700">
|
|
<replacements>
|
|
<replacement id="1">
|
|
<elem to="X" from="0" />
|
|
<elem to="O" from="1" />
|
|
</replacement>
|
|
</replacements>
|
|
</file>
|
|
<file name="MineralVein">
|
|
</file>
|
|
</gsf> |