-
Posts
42 -
Joined
-
Last visited
-
Days Won
7
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by khyle650
-
-
Update: My project all Auras. (09/27/2023)
- Pack Auras: My Project All Auras
Too my project Ragnarok Online Pre-Renewal(Offline) and guide for easy update.
- Data Folder + Server: Google Drive or MediaFire
- Client RO: Google Drive or MediaFire
Guide for start server and Play:
0. Dowloand Client RO and Update. 1. Download Data Folder + Server 2. Copy all files C:/MyServer/Client (In folder Ragnarok Onmline). 3. Run C:/MyServer/UwAmp/UwAmp.exe 4. Start Server C:/MyServer/rathena/runserver.exe Enjoy!!!
- 1
- 1
-
On 3/5/2023 at 1:08 AM, hendra814 said:
i don't want using as an item.
Use this example script npc: Orb Refine by Skorn
-
On 3/6/2023 at 10:59 AM, hendra814 said:
what's is char ID. I don't know <char ID> means, could you help me
Use this example: create npc script.
- script Enchant Expert -1,{ //------------------------------------------------------------------------------------- // Enchant UI (RagExe 2021-11-03 or newer.) if ( countitem( 2375 ) || countitem( 2433 ) || countitem( 5808 ) || countitem( 2537 ) || countitem( 2729 ) || countitem( 2374 ) ) { item_enchant 68; end; } //------------------------------------------------------------------------------------- } // Duplicates //============================================================ prt_in,28,73,4 duplicate(Enchant Expert) Enchant Expert#prt VH_H_HUNTER_EV
Add enchant in DB: rathena\db\import\item_enchant.yml
# This file is a part of rAthena. # Copyright(C) 2022 rAthena Development Team # https://rathena.org - https://github.com/rathena # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # ########################################################################### # Item Enchant Database ########################################################################### # # Item Enchant Settings # ########################################################################### # - Id Client side LUA index. # TargetItems: List of possible target items. # <item name> Item name of possible target item. # MinimumRefine Minimum refine of the target item. (Default: 0) # MinimumEnchantgrade Minimum enchant grade of the target item. (Default: 0) # AllowRandomOptions Enable random options in the target item. (Default: true) # Reset: Reset options. (Default: null) # Chance Chance of successful reset. (Default: 0) # Price Price for resetting enchants. (Default: 0) # Materials: Items required for resetting enchants. (Default: null) # - Material Item name of the required item. # Amount Amount of the required item. (Default: 1) # Order: Order in which the slots can be enchanted. # Overwriting via import will clear the currently defined order. # - Slot Number of the slot (0-3). # Slots: Enchant options. # - Slot Number of the slot (0-3). # Price Price required for the normal enchant process. (Default: 0) # Materials: Items required for the normal enchant process. (Default: null) # - Material Item name of the required item. # Amount Amount of the required item. (Default: 1) # Chance Base chance for the normal enchant process. (Default: 100000) # EnchantgradeBonus: Additional bonus chance increase per enchant grade. (Default: null) # - Enchantgrade Enchant grade required for the bonus. # Chance Additional chance that is added to the base chance. # Enchants: Available enchants for the normal enchant process per enchant grade. (Default: null) # - Enchantgrade Enchant grade of the item to be enchanted. # Items: Available enchants for the normal enchant process on the given enchant grade. (Default: null) # - Item Item name of the available enchant item. # Chance Chance to get this specific enchant item. # PerfectEnchants: Available perfect enchants (100% chance + selectable) for this slot. (Default: null) # - Item Item name of the available enchant item. # Price Price required for this perfect enchant. (Default: 0) # Materials: Items required for this perfect enchant. (Default: null) # - Material Item name of the required item. # Amount Amount of the required item. (Default: 1) # Upgrades: Available enchant upgrades for this slot. (Default: null) # - Enchant Item name of the enchant item available for upgrade. # Upgrade Item name of the enchant it can be upgrade to. # Price Price required for this enchant upgrade. (Default: 0) # Materials: Items required for this enchant upgrade (Default: null) # - Material Item name of the required item. # Amount Amount of the required item. (Default: 1) ########################################################################### Header: Type: ITEM_ENCHANT_DB Version: 1 Body: - Id: 68 TargetItems: Diabolus_Armor: true Diabolus_Boots: true Diabolus_Helmet: true Diabolus_Manteau: true Diabolus_Ring: true Diabolus_Robe: true Reset: Chance: 100000 Price: 3000000 Order: - Slot: 3 - Slot: 2 - Slot: 1 Slots: - Slot: 3 Price: 100000 Enchants: - Enchantgrade: 0 Items: - Item: Strength1 Chance: 12460 - Item: Inteligence1 Chance: 12470 - Item: Agility1 Chance: 12470 - Item: Vitality1 Chance: 12470 - Item: Luck1 Chance: 12460 - Item: Dexterity1 Chance: 12470 - Item: Strength2 Chance: 3500 - Item: Inteligence2 Chance: 3500 - Item: Agility2 Chance: 3500 - Item: Vitality2 Chance: 3500 - Item: Luck2 Chance: 3500 - Item: Dexterity2 Chance: 3500 - Item: Strength3 Chance: 700 - Item: Inteligence3 Chance: 700 - Item: Agility3 Chance: 700 - Item: Vitality3 Chance: 700 - Item: Luck3 Chance: 700 - Item: Dexterity3 Chance: 700 PerfectEnchants: - Item: Strength1 Price: 500000 - Item: Inteligence1 Price: 500000 - Item: Agility1 Price: 500000 - Item: Vitality1 Price: 500000 - Item: Luck1 Price: 500000 - Item: Dexterity1 Price: 500000 - Item: Strength2 Price: 1000000 - Item: Inteligence2 Price: 1000000 - Item: Agility2 Price: 1000000 - Item: Vitality2 Price: 1000000 - Item: Luck2 Price: 1000000 - Item: Dexterity2 Price: 1000000 - Item: Strength3 Price: 3000000 - Item: Inteligence3 Price: 3000000 - Item: Agility3 Price: 3000000 - Item: Vitality3 Price: 3000000 - Item: Luck3 Price: 3000000 - Item: Dexterity3 Price: 3000000 Upgrades: - Enchant: Strength1 Upgrade: Strength2 Price: 500000 - Enchant: Strength2 Upgrade: Strength3 Price: 1000000 - Enchant: Inteligence1 Upgrade: Inteligence2 Price: 500000 - Enchant: Inteligence2 Upgrade: Inteligence3 Price: 1000000 - Enchant: Agility1 Upgrade: Agility2 Price: 500000 - Enchant: Agility2 Upgrade: Agility3 Price: 1000000 - Enchant: Vitality1 Upgrade: Vitality2 Price: 500000 - Enchant: Vitality2 Upgrade: Vitality3 Price: 1000000 - Enchant: Luck1 Upgrade: Luck2 Price: 500000 - Enchant: Luck2 Upgrade: Luck3 Price: 1000000 - Enchant: Dexterity1 Upgrade: Dexterity2 Price: 500000 - Enchant: Dexterity2 Upgrade: Dexterity3 Price: 1000000 - Slot: 2 Price: 200000 Enchants: - Enchantgrade: 0 Items: - Item: Strength1 Chance: 12460 - Item: Inteligence1 Chance: 12470 - Item: Agility1 Chance: 12470 - Item: Vitality1 Chance: 12470 - Item: Luck1 Chance: 12460 - Item: Dexterity1 Chance: 12470 - Item: Strength2 Chance: 3500 - Item: Inteligence2 Chance: 3500 - Item: Agility2 Chance: 3500 - Item: Vitality2 Chance: 3500 - Item: Luck2 Chance: 3500 - Item: Dexterity2 Chance: 3500 - Item: Strength3 Chance: 700 - Item: Inteligence3 Chance: 700 - Item: Agility3 Chance: 700 - Item: Vitality3 Chance: 700 - Item: Luck3 Chance: 700 - Item: Dexterity3 Chance: 700 PerfectEnchants: - Item: Strength1 Price: 500000 - Item: Inteligence1 Price: 500000 - Item: Agility1 Price: 500000 - Item: Vitality1 Price: 500000 - Item: Luck1 Price: 500000 - Item: Dexterity1 Price: 500000 - Item: Strength2 Price: 1000000 - Item: Inteligence2 Price: 1000000 - Item: Agility2 Price: 1000000 - Item: Vitality2 Price: 1000000 - Item: Luck2 Price: 1000000 - Item: Dexterity2 Price: 1000000 - Item: Strength3 Price: 3000000 - Item: Inteligence3 Price: 3000000 - Item: Agility3 Price: 3000000 - Item: Vitality3 Price: 3000000 - Item: Luck3 Price: 3000000 - Item: Dexterity3 Price: 3000000 Upgrades: - Enchant: Strength1 Upgrade: Strength2 Price: 500000 - Enchant: Strength2 Upgrade: Strength3 Price: 1000000 - Enchant: Inteligence1 Upgrade: Inteligence2 Price: 500000 - Enchant: Inteligence2 Upgrade: Inteligence3 Price: 1000000 - Enchant: Agility1 Upgrade: Agility2 Price: 500000 - Enchant: Agility2 Upgrade: Agility3 Price: 1000000 - Enchant: Vitality1 Upgrade: Vitality2 Price: 500000 - Enchant: Vitality2 Upgrade: Vitality3 Price: 1000000 - Enchant: Luck1 Upgrade: Luck2 Price: 500000 - Enchant: Luck2 Upgrade: Luck3 Price: 1000000 - Enchant: Dexterity1 Upgrade: Dexterity2 Price: 500000 - Enchant: Dexterity2 Upgrade: Dexterity3 Price: 1000000 - Slot: 1 Price: 300000 Enchants: - Enchantgrade: 0 Items: - Item: Strength1 Chance: 12460 - Item: Inteligence1 Chance: 12470 - Item: Agility1 Chance: 12470 - Item: Vitality1 Chance: 12470 - Item: Luck1 Chance: 12460 - Item: Dexterity1 Chance: 12470 - Item: Strength2 Chance: 3500 - Item: Inteligence2 Chance: 3500 - Item: Agility2 Chance: 3500 - Item: Vitality2 Chance: 3500 - Item: Luck2 Chance: 3500 - Item: Dexterity2 Chance: 3500 - Item: Strength3 Chance: 700 - Item: Inteligence3 Chance: 700 - Item: Agility3 Chance: 700 - Item: Vitality3 Chance: 700 - Item: Luck3 Chance: 700 - Item: Dexterity3 Chance: 700 PerfectEnchants: - Item: Strength1 Price: 500000 - Item: Inteligence1 Price: 500000 - Item: Agility1 Price: 500000 - Item: Vitality1 Price: 500000 - Item: Luck1 Price: 500000 - Item: Dexterity1 Price: 500000 - Item: Strength2 Price: 1000000 - Item: Inteligence2 Price: 1000000 - Item: Agility2 Price: 1000000 - Item: Vitality2 Price: 1000000 - Item: Luck2 Price: 1000000 - Item: Dexterity2 Price: 1000000 - Item: Strength3 Price: 3000000 - Item: Inteligence3 Price: 3000000 - Item: Agility3 Price: 3000000 - Item: Vitality3 Price: 3000000 - Item: Luck3 Price: 3000000 - Item: Dexterity3 Price: 3000000 Upgrades: - Enchant: Strength1 Upgrade: Strength2 Price: 500000 - Enchant: Strength2 Upgrade: Strength3 Price: 1000000 - Enchant: Inteligence1 Upgrade: Inteligence2 Price: 500000 - Enchant: Inteligence2 Upgrade: Inteligence3 Price: 1000000 - Enchant: Agility1 Upgrade: Agility2 Price: 500000 - Enchant: Agility2 Upgrade: Agility3 Price: 1000000 - Enchant: Vitality1 Upgrade: Vitality2 Price: 500000 - Enchant: Vitality2 Upgrade: Vitality3 Price: 1000000 - Enchant: Luck1 Upgrade: Luck2 Price: 500000 - Enchant: Luck2 Upgrade: Luck3 Price: 1000000 - Enchant: Dexterity1 Upgrade: Dexterity2 Price: 500000 - Enchant: Dexterity2 Upgrade: Dexterity3 Price: 1000000
You need add item in Data\luafiles514\lua files\ItemDBNameTbl.lub and enchant in Data\luafiles514\lua files\Enchant\EnchantList.lub
Example:
ItemDBNameTbl.lub:
F_Ein_Weapon_Hammer = 102124, Diabolus_Armor = 2375, Diabolus_Boots = 2433, Diabolus_Helmet = 5808, Diabolus_Manteau = 2537, Diabolus_Ring = 2729, Diabolus_Robe = 2374
EnchantList.lub:
Table[68] = CreateEnchantInfo() Table[68]:SetSlotOrder(3, 2, 1) Table[68]:AddTargetItem("Diabolus_Armor") Table[68]:AddTargetItem("Diabolus_Boots") Table[68]:AddTargetItem("Diabolus_Helmet") Table[68]:AddTargetItem("Diabolus_Manteau") Table[68]:AddTargetItem("Diabolus_Ring") Table[68]:AddTargetItem("Diabolus_Robe") Table[68]:SetCondition(0, 0) Table[68]:ApproveRandomOption(true) Table[68]:SetReset(true, 100000, 3000000) Table[68]:SetCaution("Diabolus Set Enchantment\nSuccess Chance: 100%\nReset Chance: 100%, will not be destroyed on failure") Table[68].Slot[3]:SetRequire(100000) Table[68].Slot[3]:SetSuccessRate(100000) Table[68].Slot[3]:SetGradeBonus(1, 0) Table[68].Slot[3]:SetGradeBonus(2, 0) Table[68].Slot[3]:SetGradeBonus(3, 0) Table[68].Slot[3]:SetGradeBonus(4, 0) Table[68].Slot[3]:SetEnchant(0, "Èû1", 12460) Table[68].Slot[3]:SetEnchant(0, "ÀÎÆ®1", 12470) Table[68].Slot[3]:SetEnchant(0, "¾îÁú1", 12470) Table[68].Slot[3]:SetEnchant(0, "¹ÙÅ»1", 12470) Table[68].Slot[3]:SetEnchant(0, "·°1", 12460) Table[68].Slot[3]:SetEnchant(0, "µ¦1", 12470) Table[68].Slot[3]:SetEnchant(0, "Èû2", 3500) Table[68].Slot[3]:SetEnchant(0, "ÀÎÆ®2", 3500) Table[68].Slot[3]:SetEnchant(0, "¾îÁú2", 3500) Table[68].Slot[3]:SetEnchant(0, "¹ÙÅ»2", 3500) Table[68].Slot[3]:SetEnchant(0, "·°2", 3500) Table[68].Slot[3]:SetEnchant(0, "µ¦2", 3500) Table[68].Slot[3]:SetEnchant(0, "Èû3", 700) Table[68].Slot[3]:SetEnchant(0, "ÀÎÆ®3", 700) Table[68].Slot[3]:SetEnchant(0, "¾îÁú3", 700) Table[68].Slot[3]:SetEnchant(0, "¹ÙÅ»3", 700) Table[68].Slot[3]:SetEnchant(0, "·°3", 700) Table[68].Slot[3]:SetEnchant(0, "µ¦3", 700) Table[68].Slot[3]:AddPerfectEnchant("Èû1", 500000) Table[68].Slot[3]:AddPerfectEnchant("ÀÎÆ®1", 500000) Table[68].Slot[3]:AddPerfectEnchant("¾îÁú1", 500000) Table[68].Slot[3]:AddPerfectEnchant("¹ÙÅ»1", 500000) Table[68].Slot[3]:AddPerfectEnchant("·°1", 500000) Table[68].Slot[3]:AddPerfectEnchant("µ¦1", 500000) Table[68].Slot[3]:AddPerfectEnchant("Èû2", 1000000) Table[68].Slot[3]:AddPerfectEnchant("ÀÎÆ®2", 1000000) Table[68].Slot[3]:AddPerfectEnchant("¾îÁú2", 1000000) Table[68].Slot[3]:AddPerfectEnchant("¹ÙÅ»2", 1000000) Table[68].Slot[3]:AddPerfectEnchant("·°2", 1000000) Table[68].Slot[3]:AddPerfectEnchant("µ¦2", 1000000) Table[68].Slot[3]:AddPerfectEnchant("Èû3", 3000000) Table[68].Slot[3]:AddPerfectEnchant("ÀÎÆ®3", 3000000) Table[68].Slot[3]:AddPerfectEnchant("¾îÁú3", 3000000) Table[68].Slot[3]:AddPerfectEnchant("¹ÙÅ»3", 3000000) Table[68].Slot[3]:AddPerfectEnchant("·°3", 3000000) Table[68].Slot[3]:AddPerfectEnchant("µ¦3", 3000000) Table[68].Slot[3]:AddUpgradeEnchant("Èû1", "Èû2", 500000) Table[68].Slot[3]:AddUpgradeEnchant("Èû2", "Èû3", 1000000) Table[68].Slot[3]:AddUpgradeEnchant("ÀÎÆ®1", "ÀÎÆ®2", 500000) Table[68].Slot[3]:AddUpgradeEnchant("ÀÎÆ®2", "ÀÎÆ®3", 1000000) Table[68].Slot[3]:AddUpgradeEnchant("¾îÁú1", "¾îÁú2", 500000) Table[68].Slot[3]:AddUpgradeEnchant("¾îÁú2", "¾îÁú3", 1000000) Table[68].Slot[3]:AddUpgradeEnchant("¹ÙÅ»1", "¹ÙÅ»2", 500000) Table[68].Slot[3]:AddUpgradeEnchant("¹ÙÅ»2", "¹ÙÅ»3", 1000000) Table[68].Slot[3]:AddUpgradeEnchant("·°1", "·°2", 500000) Table[68].Slot[3]:AddUpgradeEnchant("·°2", "·°3", 1000000) Table[68].Slot[3]:AddUpgradeEnchant("µ¦1", "µ¦2", 500000) Table[68].Slot[3]:AddUpgradeEnchant("µ¦2", "µ¦3", 1000000) Table[68].Slot[2]:SetRequire(200000) Table[68].Slot[2]:SetSuccessRate(100000) Table[68].Slot[2]:SetGradeBonus(1, 0) Table[68].Slot[2]:SetGradeBonus(2, 0) Table[68].Slot[2]:SetGradeBonus(3, 0) Table[68].Slot[2]:SetGradeBonus(4, 0) Table[68].Slot[2]:SetEnchant(0, "Èû1", 12460) Table[68].Slot[2]:SetEnchant(0, "ÀÎÆ®1", 12470) Table[68].Slot[2]:SetEnchant(0, "¾îÁú1", 12470) Table[68].Slot[2]:SetEnchant(0, "¹ÙÅ»1", 12470) Table[68].Slot[2]:SetEnchant(0, "·°1", 12460) Table[68].Slot[2]:SetEnchant(0, "µ¦1", 12470) Table[68].Slot[2]:SetEnchant(0, "Èû2", 3500) Table[68].Slot[2]:SetEnchant(0, "ÀÎÆ®2", 3500) Table[68].Slot[2]:SetEnchant(0, "¾îÁú2", 3500) Table[68].Slot[2]:SetEnchant(0, "¹ÙÅ»2", 3500) Table[68].Slot[2]:SetEnchant(0, "·°2", 3500) Table[68].Slot[2]:SetEnchant(0, "µ¦2", 3500) Table[68].Slot[2]:SetEnchant(0, "Èû3", 700) Table[68].Slot[2]:SetEnchant(0, "ÀÎÆ®3", 700) Table[68].Slot[2]:SetEnchant(0, "¾îÁú3", 700) Table[68].Slot[2]:SetEnchant(0, "¹ÙÅ»3", 700) Table[68].Slot[2]:SetEnchant(0, "·°3", 700) Table[68].Slot[2]:SetEnchant(0, "µ¦3", 700) Table[68].Slot[2]:AddPerfectEnchant("Èû1", 500000) Table[68].Slot[2]:AddPerfectEnchant("ÀÎÆ®1", 500000) Table[68].Slot[2]:AddPerfectEnchant("¾îÁú1", 500000) Table[68].Slot[2]:AddPerfectEnchant("¹ÙÅ»1", 500000) Table[68].Slot[2]:AddPerfectEnchant("·°1", 500000) Table[68].Slot[2]:AddPerfectEnchant("µ¦1", 500000) Table[68].Slot[2]:AddPerfectEnchant("Èû2", 1000000) Table[68].Slot[2]:AddPerfectEnchant("ÀÎÆ®2", 1000000) Table[68].Slot[2]:AddPerfectEnchant("¾îÁú2", 1000000) Table[68].Slot[2]:AddPerfectEnchant("¹ÙÅ»2", 1000000) Table[68].Slot[2]:AddPerfectEnchant("·°2", 1000000) Table[68].Slot[2]:AddPerfectEnchant("µ¦2", 1000000) Table[68].Slot[2]:AddPerfectEnchant("Èû3", 3000000) Table[68].Slot[2]:AddPerfectEnchant("ÀÎÆ®3", 3000000) Table[68].Slot[2]:AddPerfectEnchant("¾îÁú3", 3000000) Table[68].Slot[2]:AddPerfectEnchant("¹ÙÅ»3", 3000000) Table[68].Slot[2]:AddPerfectEnchant("·°3", 3000000) Table[68].Slot[2]:AddPerfectEnchant("µ¦3", 3000000) Table[68].Slot[2]:AddUpgradeEnchant("Èû1", "Èû2", 500000) Table[68].Slot[2]:AddUpgradeEnchant("Èû2", "Èû3", 1000000) Table[68].Slot[2]:AddUpgradeEnchant("ÀÎÆ®1", "ÀÎÆ®2", 500000) Table[68].Slot[2]:AddUpgradeEnchant("ÀÎÆ®2", "ÀÎÆ®3", 1000000) Table[68].Slot[2]:AddUpgradeEnchant("¾îÁú1", "¾îÁú2", 500000) Table[68].Slot[2]:AddUpgradeEnchant("¾îÁú2", "¾îÁú3", 1000000) Table[68].Slot[2]:AddUpgradeEnchant("¹ÙÅ»1", "¹ÙÅ»2", 500000) Table[68].Slot[2]:AddUpgradeEnchant("¹ÙÅ»2", "¹ÙÅ»3", 1000000) Table[68].Slot[2]:AddUpgradeEnchant("·°1", "·°2", 500000) Table[68].Slot[2]:AddUpgradeEnchant("·°2", "·°3", 1000000) Table[68].Slot[2]:AddUpgradeEnchant("µ¦1", "µ¦2", 500000) Table[68].Slot[2]:AddUpgradeEnchant("µ¦2", "µ¦3", 1000000) Table[68].Slot[1]:SetRequire(300000) Table[68].Slot[1]:SetSuccessRate(100000) Table[68].Slot[1]:SetGradeBonus(1, 0) Table[68].Slot[1]:SetGradeBonus(2, 0) Table[68].Slot[1]:SetGradeBonus(3, 0) Table[68].Slot[1]:SetGradeBonus(4, 0) Table[68].Slot[1]:SetEnchant(0, "Èû1", 12460) Table[68].Slot[1]:SetEnchant(0, "ÀÎÆ®1", 12470) Table[68].Slot[1]:SetEnchant(0, "¾îÁú1", 12470) Table[68].Slot[1]:SetEnchant(0, "¹ÙÅ»1", 12470) Table[68].Slot[1]:SetEnchant(0, "·°1", 12460) Table[68].Slot[1]:SetEnchant(0, "µ¦1", 12470) Table[68].Slot[1]:SetEnchant(0, "Èû2", 3500) Table[68].Slot[1]:SetEnchant(0, "ÀÎÆ®2", 3500) Table[68].Slot[1]:SetEnchant(0, "¾îÁú2", 3500) Table[68].Slot[1]:SetEnchant(0, "¹ÙÅ»2", 3500) Table[68].Slot[1]:SetEnchant(0, "·°2", 3500) Table[68].Slot[1]:SetEnchant(0, "µ¦2", 3500) Table[68].Slot[1]:SetEnchant(0, "Èû3", 700) Table[68].Slot[1]:SetEnchant(0, "ÀÎÆ®3", 700) Table[68].Slot[1]:SetEnchant(0, "¾îÁú3", 700) Table[68].Slot[1]:SetEnchant(0, "¹ÙÅ»3", 700) Table[68].Slot[1]:SetEnchant(0, "·°3", 700) Table[68].Slot[1]:SetEnchant(0, "µ¦3", 700) Table[68].Slot[1]:AddPerfectEnchant("Èû1", 500000) Table[68].Slot[1]:AddPerfectEnchant("ÀÎÆ®1", 500000) Table[68].Slot[1]:AddPerfectEnchant("¾îÁú1", 500000) Table[68].Slot[1]:AddPerfectEnchant("¹ÙÅ»1", 500000) Table[68].Slot[1]:AddPerfectEnchant("·°1", 500000) Table[68].Slot[1]:AddPerfectEnchant("µ¦1", 500000) Table[68].Slot[1]:AddPerfectEnchant("Èû2", 1000000) Table[68].Slot[1]:AddPerfectEnchant("ÀÎÆ®2", 1000000) Table[68].Slot[1]:AddPerfectEnchant("¾îÁú2", 1000000) Table[68].Slot[1]:AddPerfectEnchant("¹ÙÅ»2", 1000000) Table[68].Slot[1]:AddPerfectEnchant("·°2", 1000000) Table[68].Slot[1]:AddPerfectEnchant("µ¦2", 1000000) Table[68].Slot[1]:AddPerfectEnchant("Èû3", 3000000) Table[68].Slot[1]:AddPerfectEnchant("ÀÎÆ®3", 3000000) Table[68].Slot[1]:AddPerfectEnchant("¾îÁú3", 3000000) Table[68].Slot[1]:AddPerfectEnchant("¹ÙÅ»3", 3000000) Table[68].Slot[1]:AddPerfectEnchant("·°3", 3000000) Table[68].Slot[1]:AddPerfectEnchant("µ¦3", 3000000) Table[68].Slot[1]:AddUpgradeEnchant("Èû1", "Èû2", 500000) Table[68].Slot[1]:AddUpgradeEnchant("Èû2", "Èû3", 1000000) Table[68].Slot[1]:AddUpgradeEnchant("ÀÎÆ®1", "ÀÎÆ®2", 500000) Table[68].Slot[1]:AddUpgradeEnchant("ÀÎÆ®2", "ÀÎÆ®3", 1000000) Table[68].Slot[1]:AddUpgradeEnchant("¾îÁú1", "¾îÁú2", 500000) Table[68].Slot[1]:AddUpgradeEnchant("¾îÁú2", "¾îÁú3", 1000000) Table[68].Slot[1]:AddUpgradeEnchant("¹ÙÅ»1", "¹ÙÅ»2", 500000) Table[68].Slot[1]:AddUpgradeEnchant("¹ÙÅ»2", "¹ÙÅ»3", 1000000) Table[68].Slot[1]:AddUpgradeEnchant("·°1", "·°2", 500000) Table[68].Slot[1]:AddUpgradeEnchant("·°2", "·°3", 1000000) Table[68].Slot[1]:AddUpgradeEnchant("µ¦1", "µ¦2", 500000) Table[68].Slot[1]:AddUpgradeEnchant("µ¦2", "µ¦3", 1000000)
- 1
- 1
-
1. rathena/src/map/script.hpp
Search:
HAT_EF_MAX
Replace:
/* Custom Hateffects */ HAT_EF_arcane_aura_A, HAT_EF_arcane_aura_B, HAT_EF_gluttony_aura_A, HAT_EF_gluttony_aura_B, HAT_EF_MAX = 9999
2. rathena/src/map/script_constants.hpp
Search:
export_constant(HAT_EF_EFST_C_20TH_ANNIVERSARY_HAT);
Replace:
export_constant(HAT_EF_EFST_C_20TH_ANNIVERSARY_HAT); /* Custom Hateffects */ export_constant(HAT_EF_arcane_aura_A); export_constant(HAT_EF_arcane_aura_B); export_constant(HAT_EF_gluttony_aura_A); export_constant(HAT_EF_gluttony_aura_B);
3. Compile you Server.
4. Copy in you Data/texture/effect/(arcane_aura) and (gluttony_aura) Data(Example_Auras).zip
5. Data/luafiles514/lua files/hateffectinfo/hateffectinfo.lub
Search:
HAT_EF_efst_C_20th_Anniversary_Hat = 176 }
Replace:
HAT_EF_efst_C_20th_Anniversary_Hat = 176, HAT_EF_arcane_aura_A = 177, HAT_EF_arcane_aura_B = 178, HAT_EF_gluttony_aura_A = 179, HAT_EF_gluttony_aura_B = 180 }
resourceFileName: route effect(Data/effect/name you effect folder/name you str file.str)
IsIgnoreRiding: if true when mounting a mount or asking for hateffect will not go up, it will ignore this action
isRenderBeforeCharacter: If true when using hateffect it will be over the character.
hatEffectPos: Position the Y anchor (up and down) of the hateffect
hatEffectPosX: Positions hateffect X anchor (left right)
isAdjustPositionWhenShrinkState: always true
isAdjustSizeWhenShrinkState: always trueSearch:
[HatEFID.HAT_EF_efst_C_20th_Anniversary_Hat] = { resourceFileName = "efst_C_20th_Anniversary_Hat\\20th_f.str", hatEffectPos = -6, hatEffectPosX = 0, isIgnoreRiding = true, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true } }
Replace:
[HatEFID.HAT_EF_efst_C_20th_Anniversary_Hat] = { resourceFileName = "efst_C_20th_Anniversary_Hat\\20th_f.str", hatEffectPos = -6, hatEffectPosX = 0, isIgnoreRiding = true, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true }, [HatEFID.HAT_EF_arcane_aura_A] = { resourceFileName = "arcane_aura\\arcane_aura_particle.str", hatEffectPos = -1, hatEffectPosX = 0, isRenderBeforeCharacter = false, isIgnoreRiding = false, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true }, [HatEFID.HAT_EF_arcane_aura_B] = { resourceFileName = "arcane_aura\\arcane_aura.str", hatEffectPos = -2, hatEffectPosX = 0.2, isRenderBeforeCharacter = true, isIgnoreRiding = true, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true }, [HatEFID.HAT_EF_gluttony_aura_A] = { resourceFileName = "gluttony_aura\\gluttony_aura_particle.str", hatEffectPos = -1, hatEffectPosX = 0, isRenderBeforeCharacter = false, isIgnoreRiding = false, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true }, [HatEFID.HAT_EF_gluttony_aura_B] = { resourceFileName = "gluttony_aura\\gluttony_aura.str", hatEffectPos = -2, hatEffectPosX = 0.2, isRenderBeforeCharacter = true, isIgnoreRiding = true, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true } }
6. Add Script NPC: rathena\npc\custom\hateffect.txt (Use command @efc in game)
- script HATEFFECT -1,{ OnHatEffect: if(getgmlevel()>= 80){ input .@number; if (.@number < 1) end; if (.@number >= 301) end; for(.@i = 1; .@i < 300; ++.@i) hateffect .@i,false; hateffect .@number,true; end; } OnInit: bindatcmd "efc",strnpcinfo(3)+"::OnHatEffect"; end; }
7. Add npc in rathena\npc\scripts_custom.conf
npc: npc/custom/hateffect.txt
8. (OPTIONAL) Add Hateffect in item:
Example:- Id: 2301 AegisName: Cotton_Shirt Name: Cotton Shirt Type: Armor Buy: 10 Weight: 100 Defense: 1 Locations: Armor: true ArmorLevel: 1 Refineable: true Script: | hateffect HAT_EF_arcane_aura_A,true; hateffect HAT_EF_arcane_aura_B,true; UnEquipScript: | hateffect HAT_EF_arcane_aura_A,false; hateffect HAT_EF_arcane_aura_B,false;
Update: My project all Auras. (09/27/2023)
- Pack Auras: My Project All Auras
Too my project Ragnarok Online Pre-Renewal(Offline) and guide for easy update.
- Data Folder + Server: Google Drive or MediaFire
- Client RO: Google Drive or MediaFire
Guide for start server and Play:
0. Dowloand Client RO and Update. 1. Download Data Folder + Server 2. Copy all files C:/MyServer/Client (In folder Ragnarok Onmline). 3. Run C:/MyServer/UwAmp/UwAmp.exe 4. Start Server C:/MyServer/rathena/runserver.exe Enjoy!!!
Gluttony Aura:
Arcane Aura:
Spoiler- 2
- 8
- 3
- 1
-
32 minutes ago, Notorius said:
Hello, what should I do so that for each refine level the holy light increases by 2%?
bonus2 bSkillAtk,"AL_HOLYLIGHT",getrefine();}
This bonus is for increase damage in skill. 2% by refine level.
bonus2 bSkillAtk,"SKILL NAME",2+getrefine();
For increase elemental damage try:
bonus2 bMagicAtkEle,Ele_Holy,2+getrefine();
- 1
-
1 minute ago, AinsLord said:
im using this script
//===== rAthena Script ======================================= //= Euphy's Quest Shop //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.6c //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= A dynamic quest shop based on Lunar's, with easier config. //= Includes support for multiple shops & cashpoints. //= Item Preview script by ToastOfDoom. //===== Additional Comments: ================================= //= 1.0 Initial script. //= 1.2 Added category support. //= 1.3 More options and fixes. //= 1.4 Added debug settings. //= 1.5 Replaced categories with shop IDs. //= 1.6 Added support for purchasing stackables. //= 1.6a Added support for previewing costumes and robes. //= 1.6b Added 'disable_items' command. //= 1.6c Replaced function 'A_An' with "F_InsertArticle". //============================================================ // Shop NPCs -- supplying no argument displays entire menu. // callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}}; // ADD YOUR NPC HERE //============================================================ prontera,164,203,6 script Quest Shop#1 998,{ callfunc "qshop"; } // prontera,165,203,6 script Quest Shop#2 998,{ callfunc "qshop",1,2; } // call the shop 1 and 2 defined below // etc.. Add your Shop NPCs 'Quest Shop#XXX' here //============================================================ // Script Core - DO NOT DUPLICATE THIS NPC !!!!!!!!!!!!! //============================================================ - script quest_shop -1,{ function Add; function Chk; function Slot; OnInit: freeloop(1); // ----------------------------------------------------------- // Basic shop settings. // ----------------------------------------------------------- set .Announce,1; // Announce quest completion? (1: yes / 0: no) set .ShowSlot,1; // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never) set .ShowID,0; // Show item IDs? (1: yes / 0: no) set .ShowZeny,0; // Show Zeny cost, if any? (1: yes / 0: no) set .MaxStack,100; // Max number of quest items purchased at one time. // ----------------------------------------------------------- // Points variable -- optional quest requirement. // setarray .Points$[0],"<variable name>","<display name>"; // ----------------------------------------------------------- setarray .Points$[0], "#CASHPOINTS", "Cash Points"; //===================================================================================== // ------------------- ADD YOUR SHOPS NAME AND ITEMS SHOPS STARTING HERE -------------- //===================================================================================== // ----------------------------------------------------------- // Shop IDs -- to add shops, copy dummy data at bottom of file. // setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...}; // ----------------------------------------------------------- setarray .Shops$[1], "Headgears", // Shop Named 1 "Weapons", // Shop Named 2 "Other"; // Shop Named 3 // ----------------------------------------------------------- // Quest items -- do NOT use a reward item more than once! // Add(<shop ID>,<reward ID>,<reward amount>, // <Zeny cost>,<point cost>, // <required item ID>,<required item amount>{,...}); // ----------------------------------------------------------- // Shop 1 Add(1,5022,1,0,0,7086,1,969,10,999,40,1003,50,984,2); Add(1,5032,1,0,0,1059,250,2221,1,2227,1,7063,600); Add(1,5027,1,0,0,2252,1,1036,400,7001,50,4052,1); Add(1,5045,1,0,0,2252,1,1054,450,943,1200); // Shop 2 Add(2,1224,1,0,0,7297,30,969,10,999,50,714,10); Add(2,1225,1,0,0,7292,30,969,10,999,50,714,10); // Shop 3 Add(3,531,1,3,0,512,1,713,1); Add(3,532,1,3,0,513,1,713,1); Add(3,533,1,3,0,514,1,713,1); Add(3,534,1,3,0,515,1,713,1); // ----------------------------------------------------------- //===================================================================================== // ------------------- YOUR SHOPS AND ITEMS SHOPS HAVE BEEN ADDED --------------------- //===================================================================================== freeloop(0); set .menu$,""; for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) { set .menu$, .menu$+.Shops$[.@i]+":"; npcshopdelitem "qshop"+.@i,909; } end; OnMenu: set .@size, getarraysize(@i); if (!.@size) set @shop_index, select(.menu$); else if (.@size == 1) set @shop_index, @i[0]; else { for(set .@j,0; .@j<.@size; set .@j,.@j+1) set .@menu$, .@menu$+.Shops$[@i[.@j]]+":"; set @shop_index, @i[select(.@menu$)-1]; } deletearray @i[0],getarraysize(@i); if (.Shops$[@shop_index] == "") { message strcharinfo(0),"An error has occurred."; end; } dispbottom "Select one item at a time."; callshop "qshop"+@shop_index,1; npcshopattach "qshop"+@shop_index; end; OnBuyItem: // .@q[] : RewardID, BoughtAmt, RewardAmt, BaseAmt, ReqZeny, ReqPts, { ReqItem, ReqAmt, ... } setarray .@q[0],@bought_nameid[0],((@bought_quantity[0] > .MaxStack)?.MaxStack:@bought_quantity[0]); copyarray .@q[3],getd(".q_"+@shop_index+"_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+@shop_index+"_"+.@q[0])); set .@q[2],.@q[1]*.@q[3]; if (!.@q[2] || .@q[2] > 30000) { message strcharinfo(0),"You can't purchase that many "+getitemname(.@q[0])+"."; end; } mes "[Quest Shop]"; mes "Reward: ^0055FF"+((.@q[2] > 1)?.@q[2]+"x ":"")+Slot(.@q[0])+"^000000"; mes "Requirements:"; disable_items; if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]*.@q[1])+" Zeny^000000"; if (.@q[5]) mes " > "+Chk(getd(.Points$[0]),.@q[5]*.@q[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+(.@q[5]*.@q[1])+")^000000"; if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2) mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000"; next; setarray @qe[1], getiteminfo(.@q[0], ITEMINFO_LOCATIONS), getiteminfo(.@q[0], ITEMINFO_VIEW); if (@qe[2] > 0 && ((@qe[1] & EQP_HEAD_LOW) || (@qe[1] & EQP_HEAD_TOP) || (@qe[1] & EQP_HEAD_MID) || (@qe[1] & EQP_COSTUME_HEAD_TOP) || (@qe[1] & EQP_COSTUME_HEAD_MID) || (@qe[1] & EQP_COSTUME_HEAD_LOW) || (@qe[1] & EQP_GARMENT) || (@qe[1] & EQP_COSTUME_GARMENT))) set .@preview,1; addtimer 1000, strnpcinfo(0)+"::OnEnd"; while(1) { switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[7])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) { case 1: if (@qe[0]) { mes "[Quest Shop]"; mes "You're missing one or more quest requirements."; close; } if (!checkweight(.@q[0],.@q[2])) { mes "[Quest Shop]"; mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0], ITEMINFO_WEIGHT))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000"; close; } if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q[1]); if (.@q[5]) setd .Points$[0], getd(.Points$[0])-(.@q[5]*.@q[1]); if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2) delitem .@q[.@i],.@q[.@i+1]*.@q[1]; getitem .@q[0],.@q[2]; if (.Announce) announce strcharinfo(0)+" has created "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):callfunc("F_InsertArticle",getitemname(.@q[0])))+"!",0; specialeffect2 EF_FLOWERLEAF; close; case 2: setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), getlook(LOOK_ROBE), 1; if ((@qe[1] & 1) || (@qe[1] & 4096)) changelook LOOK_HEAD_BOTTOM, @qe[2]; else if ((@qe[1] & 256) || (@qe[1] & 1024)) changelook LOOK_HEAD_TOP, @qe[2]; else if ((@qe[1] & 512) || (@qe[1] & 2048)) changelook LOOK_HEAD_MID, @qe[2]; else if ((@qe[1] & 4) || (@qe[1] & 8192)) changelook LOOK_ROBE, @qe[2]; break; case 3: close; } } OnEnd: if (@qe[7]) { changelook LOOK_HEAD_BOTTOM, @qe[3]; changelook LOOK_HEAD_TOP, @qe[4]; changelook LOOK_HEAD_MID, @qe[5]; changelook LOOK_ROBE, @qe[6]; } deletearray @qe[0],8; end; function Add { if (getitemname(getarg(1)) == "null") { debugmes "Quest reward #"+getarg(1)+" invalid (skipped)."; return; } setarray .@j[0],getarg(2),getarg(3),getarg(4); for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) { if (getitemname(getarg(.@i)) == "null") { debugmes "Quest requirement #"+getarg(.@i)+" invalid (skipped)."; return; } else setarray .@j[.@i-2],getarg(.@i),getarg(.@i+1); } copyarray getd(".q_"+getarg(0)+"_"+getarg(1)+"[0]"),.@j[0],getarraysize(.@j); npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0); return; } function Chk { if (getarg(0) < getarg(1)) { set @qe[0],1; return "^FF0000"; } else return "^00FF00"; } function Slot { set .@s$,getitemname(getarg(0)); switch(.ShowSlot) { case 1: if (!getitemslots(getarg(0))) return .@s$; case 2: if (getiteminfo(getarg(0), ITEMINFO_TYPE) == 4 || getiteminfo(getarg(0), ITEMINFO_TYPE) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]"; default: return .@s$; } } } function script qshop { deletearray @i[0],getarraysize(@i); for(set .@i,0; .@i<getargcount(); set .@i,.@i+1) set @i[.@i],getarg(.@i); doevent "quest_shop::OnMenu"; end; } // Dummy shop data -- copy as needed. //============================================================ - shop qshop1 -1,909:-1 - shop qshop2 -1,909:-1 - shop qshop3 -1,909:-1 - shop qshop4 -1,909:-1 - shop qshop5 -1,909:-1
so in where in this script should i remove the "space"
Yes i am @sapitosucio
With Notepad++
Search:
mes " >
Replace:
mes ">
- 1
-
33 minutes ago, AinsLord said:
In new client no use in script npc "space" at first. Exemple.
No:
mes " Hello my name is."; mes " Khyle.";
Yes:
mes "Hello my name is."; mmes"Khyle";
-
1 hour ago, hendra814 said:
can you share to me how you do that
Use this Guide for add new Hateffects and my example aura.
In rathena/src/map/Script.hpp change:
EF_MAX for EF_MAX = 9999
HAT_EF_MAX for HAT_EF_MAX = 9999
and compile you server.
-
53 minutes ago, estikeyear said:
Cards in db/re(or pre-re)/item_db_etc.yml
import/item_db.yml use for you add items custom(Equip/Etc/Usable).
-
2 minutes ago, Kawacito said:
Do you happen to have the link to the program?
I'll try to do what I can and see how it turns out
-
1 hour ago, Kawacito said:
I was able to achieve the Hat Effect, but the files I have to add are .tga and I think that for that reason it does not allow me to add it as a Hat Effect, look for guides and add my own Hat Effect but it does not work and I think it is because of the format already that in Hat Effect .str is used, any suggestions to be able to implement my 6 auras?
Use STR Editor and add image in .bmp or .tga. This example is Aura Compilation
-
22 hours ago, Kawacito said:
Hello good! I tell you that I have 6 auras (aura_float) that I would like to add to my server, the problem is that I don't know how to add the 6 auras together and then through an NPC that gives me the option to use any of these 6 previously added auras. Help.
Create as HatEffect: (Exemple)
-
1 hour ago, mawjustin said:
Hi Team,
I'm trying to make a custom Random Option using .yml file.
I've checked everything, but I'm still getting this error:
I have no idea why it says incorrect indentation when the line itself is just a replica of the previous lines used in pre-re and re .yml random option file.
Attached is the data I'm trying to fix.
Thank you.
Change:
MaxRandom: 1 Random:
For:
MaxRandom: 1 Random:
Repect space.
- 1
-
19 minutes ago, BabaVoss said:
meaning one should wear an item with this script on item_db for the bonus effect to work? is it possible if even no item, just the stats alone?
Try. Create Script:
function script F_SpecialBonus { OnPCLoginEvent: if (readparam(bDex)>=99) { bonus bDelayRate,-100; bonus bVariableCastrate,-100; } end; }
If no work fuction change:
function script F_SpecialBonus {
for
- script Special_Bonus -1, {
Too try in conf/battle/skill.conf for instant cast:
// Does the delay time depend on the caster's DEX and/or AGI? (Note 1) // Note: On Official servers, neither Dex nor Agi affect delay time delay_dependon_dex: yes delay_dependon_agi: yes
-
18 minutes ago, BabaVoss said:
i want it to be a callfunc, not on a db. hehe
Create script:
function script F_SpecialBonus { if (readparam(bDex)>=99) { bonus bDelayRate,-100; bonus bVariableCastrate,-100; } }
Call in item_db.yml:
Script: | callfunc "F_SpecialBonus";
-
On 2/24/2023 at 11:29 AM, BabaVoss said:
hello sir, can you help me with something like this ( if(readparam(bAgi)>=100) { bonus bDelayRate,-45; )
i need to be a function script, where in with or without an item. if a user has 100 agi, it will give this kind of bonus effect.Try. (Instant Cast)
Script: | if (readparam(bDex)>=99) { bonus bDelayRate,-100; bonus bVariableCastrate,-100; }
-
4 hours ago, BabaVoss said:
Hello guys, can anyone help me make this a function script?
Script; |
if (readparam(bAgi)>=150 {
bonus bDelayRate,-100;
}Try.
Script: | if (readparam(bAgi)>=99) { bonus bAllStats,100; }
Instant Cast:
Script: | if (readparam(bAgi)>=99) { bonus bDelayRate,-100; bonus bVariableCastrate,-100; }
-
Use Class == Job...
Check for more bonus: here
Spoiler/* jobs */ export_constant(JOB_NOVICE); export_constant(JOB_SWORDMAN); export_constant(JOB_MAGE); export_constant(JOB_ARCHER); export_constant(JOB_ACOLYTE); export_constant(JOB_MERCHANT); export_constant(JOB_THIEF); export_constant(JOB_KNIGHT); export_constant(JOB_PRIEST); export_constant(JOB_WIZARD); export_constant(JOB_BLACKSMITH); export_constant(JOB_HUNTER); export_constant(JOB_ASSASSIN); export_constant(JOB_KNIGHT2); export_constant(JOB_CRUSADER); export_constant(JOB_MONK); export_constant(JOB_SAGE); export_constant(JOB_ROGUE); export_constant(JOB_ALCHEMIST); export_constant(JOB_BARD); export_constant(JOB_DANCER); export_constant(JOB_CRUSADER2); export_constant(JOB_WEDDING); export_constant(JOB_SUPER_NOVICE); // For backwards compatability export_constant2("Job_SuperNovice",JOB_SUPER_NOVICE); // TODO: Refactor NPCs to use the new constant export_constant(JOB_GUNSLINGER); export_constant(JOB_NINJA); export_constant(JOB_XMAS); export_constant(JOB_SUMMER); export_constant(JOB_HANBOK); export_constant(JOB_OKTOBERFEST); export_constant(JOB_SUMMER2); export_constant(JOB_NOVICE_HIGH); export_constant(JOB_SWORDMAN_HIGH); export_constant(JOB_MAGE_HIGH); export_constant(JOB_ARCHER_HIGH); export_constant(JOB_ACOLYTE_HIGH); export_constant(JOB_MERCHANT_HIGH); export_constant(JOB_THIEF_HIGH); export_constant(JOB_LORD_KNIGHT); export_constant(JOB_HIGH_PRIEST); export_constant(JOB_HIGH_WIZARD); export_constant(JOB_WHITESMITH); export_constant(JOB_SNIPER); export_constant(JOB_ASSASSIN_CROSS); export_constant(JOB_LORD_KNIGHT2); export_constant(JOB_PALADIN); export_constant(JOB_CHAMPION); export_constant(JOB_PROFESSOR); export_constant(JOB_STALKER); export_constant(JOB_CREATOR); export_constant(JOB_CLOWN); export_constant(JOB_GYPSY); export_constant(JOB_PALADIN2); export_constant(JOB_BABY); export_constant(JOB_BABY_SWORDMAN); export_constant(JOB_BABY_MAGE); export_constant(JOB_BABY_ARCHER); export_constant(JOB_BABY_ACOLYTE); export_constant(JOB_BABY_MERCHANT); export_constant(JOB_BABY_THIEF); export_constant(JOB_BABY_KNIGHT); export_constant(JOB_BABY_PRIEST); export_constant(JOB_BABY_WIZARD); export_constant(JOB_BABY_BLACKSMITH); export_constant(JOB_BABY_HUNTER); export_constant(JOB_BABY_ASSASSIN); export_constant(JOB_BABY_KNIGHT2); export_constant(JOB_BABY_CRUSADER); export_constant(JOB_BABY_MONK); export_constant(JOB_BABY_SAGE); export_constant(JOB_BABY_ROGUE); export_constant(JOB_BABY_ALCHEMIST); export_constant(JOB_BABY_BARD); export_constant(JOB_BABY_DANCER); export_constant(JOB_BABY_CRUSADER2); export_constant(JOB_SUPER_BABY); export_constant(JOB_TAEKWON); export_constant(JOB_STAR_GLADIATOR); export_constant(JOB_STAR_GLADIATOR2); export_constant(JOB_SOUL_LINKER); export_constant(JOB_GANGSI); export_constant(JOB_DEATH_KNIGHT); export_constant(JOB_DARK_COLLECTOR); export_constant(JOB_RUNE_KNIGHT); export_constant(JOB_WARLOCK); export_constant(JOB_RANGER); export_constant(JOB_ARCH_BISHOP); export_constant(JOB_MECHANIC); export_constant(JOB_GUILLOTINE_CROSS); export_constant(JOB_RUNE_KNIGHT_T); export_constant(JOB_WARLOCK_T); export_constant(JOB_RANGER_T); export_constant(JOB_ARCH_BISHOP_T); export_constant(JOB_MECHANIC_T); export_constant(JOB_GUILLOTINE_CROSS_T); export_constant(JOB_ROYAL_GUARD); export_constant(JOB_SORCERER); export_constant(JOB_MINSTREL); export_constant(JOB_WANDERER); export_constant(JOB_SURA); export_constant(JOB_GENETIC); export_constant(JOB_SHADOW_CHASER); export_constant(JOB_ROYAL_GUARD_T); export_constant(JOB_SORCERER_T); export_constant(JOB_MINSTREL_T); export_constant(JOB_WANDERER_T); export_constant(JOB_SURA_T); export_constant(JOB_GENETIC_T); export_constant(JOB_SHADOW_CHASER_T); export_constant(JOB_RUNE_KNIGHT2); export_constant(JOB_RUNE_KNIGHT_T2); export_constant(JOB_ROYAL_GUARD2); export_constant(JOB_ROYAL_GUARD_T2); export_constant(JOB_RANGER2); export_constant(JOB_RANGER_T2); export_constant(JOB_MECHANIC2); export_constant(JOB_MECHANIC_T2); export_deprecated_constant3("JOB_BABY_RUNE", JOB_BABY_RUNE_KNIGHT, "JOB_BABY_RUNE_KNIGHT"); export_deprecated_constant3("JOB_BABY_BISHOP", JOB_BABY_ARCH_BISHOP, "JOB_BABY_ARCH_BISHOP"); export_deprecated_constant3("JOB_BABY_CROSS", JOB_BABY_GUILLOTINE_CROSS, "JOB_BABY_GUILLOTINE_CROSS"); export_deprecated_constant3("JOB_BABY_GUARD", JOB_BABY_ROYAL_GUARD, "JOB_BABY_ROYAL_GUARD"); export_deprecated_constant3("JOB_BABY_CHASER", JOB_BABY_SHADOW_CHASER, "JOB_BABY_SHADOW_CHASER"); export_deprecated_constant3("JOB_BABY_RUNE2", JOB_BABY_RUNE_KNIGHT2, "JOB_BABY_RUNE_KNIGHT2"); export_deprecated_constant3("JOB_BABY_GUARD2", JOB_BABY_ROYAL_GUARD2, "JOB_BABY_ROYAL_GUARD2"); export_constant(JOB_BABY_RUNE_KNIGHT); export_constant(JOB_BABY_WARLOCK); export_constant(JOB_BABY_RANGER); export_constant(JOB_BABY_ARCH_BISHOP); export_constant(JOB_BABY_MECHANIC); export_constant(JOB_BABY_GUILLOTINE_CROSS); export_constant(JOB_BABY_ROYAL_GUARD); export_constant(JOB_BABY_SORCERER); export_constant(JOB_BABY_MINSTREL); export_constant(JOB_BABY_WANDERER); export_constant(JOB_BABY_SURA); export_constant(JOB_BABY_GENETIC); export_constant(JOB_BABY_SHADOW_CHASER); export_constant(JOB_BABY_RUNE_KNIGHT2); export_constant(JOB_BABY_ROYAL_GUARD2); export_constant(JOB_BABY_RANGER2); export_constant(JOB_BABY_MECHANIC2); export_constant(JOB_SUPER_NOVICE_E); export_constant(JOB_SUPER_BABY_E); export_constant(JOB_KAGEROU); export_constant(JOB_OBORO); export_constant(JOB_REBELLION); export_constant(JOB_SUMMONER); export_constant(JOB_BABY_SUMMONER); export_constant(JOB_BABY_NINJA); export_constant(JOB_BABY_KAGEROU); export_constant(JOB_BABY_OBORO); export_constant(JOB_BABY_TAEKWON); export_constant(JOB_BABY_STAR_GLADIATOR); export_constant(JOB_BABY_SOUL_LINKER); export_constant(JOB_BABY_GUNSLINGER); export_constant(JOB_BABY_REBELLION); export_constant(JOB_BABY_STAR_GLADIATOR2); export_constant(JOB_STAR_EMPEROR); export_constant(JOB_SOUL_REAPER); export_constant(JOB_BABY_STAR_EMPEROR); export_constant(JOB_BABY_SOUL_REAPER); export_constant(JOB_STAR_EMPEROR2); export_constant(JOB_BABY_STAR_EMPEROR2); export_constant(JOB_DRAGON_KNIGHT); export_constant(JOB_MEISTER); export_constant(JOB_SHADOW_CROSS); export_constant(JOB_ARCH_MAGE); export_constant(JOB_CARDINAL); export_constant(JOB_WINDHAWK); export_constant(JOB_IMPERIAL_GUARD); export_constant(JOB_BIOLO); export_constant(JOB_ABYSS_CHASER); export_constant(JOB_ELEMENTAL_MASTER); export_constant(JOB_INQUISITOR); export_constant(JOB_TROUBADOUR); export_constant(JOB_TROUVERE); export_constant(JOB_WINDHAWK2); export_constant(JOB_MEISTER2); export_constant(JOB_DRAGON_KNIGHT2); export_constant(JOB_IMPERIAL_GUARD2); export_constant(JOB_SKY_EMPEROR); export_constant(JOB_SOUL_ASCETIC); export_constant(JOB_SHINKIRO); export_constant(JOB_SHIRANUI); export_constant(JOB_NIGHT_WATCH); export_constant(JOB_HYPER_NOVICE); export_constant(JOB_SPIRIT_HANDLER); export_constant(JOB_SKY_EMPEROR2); - 1
-
Delete folder Ragnarok Online/savedata
-
@Bodystyle for all Class, change in src/map/atcommand.cpp
Search: if ( (sd->class_ & JOBL_FOURTH) || !(sd->class_ & JOBL_THIRD) || (sd->class_ & MAPID_THIRDMASK) == MAPID_SUPER_NOVICE_E || (sd->class_ & MAPID_THIRDMASK) == MAPID_STAR_EMPEROR || (sd->class_ & MAPID_THIRDMASK) == MAPID_SOUL_REAPER) { clif_displaymessage(fd, msg_txt(sd,740)); // This job has no alternate body styles. return -1; } Replace: /*if ( (sd->class_ & JOBL_FOURTH) || !(sd->class_ & JOBL_THIRD) || (sd->class_ & MAPID_THIRDMASK) == MAPID_SUPER_NOVICE_E || (sd->class_ & MAPID_THIRDMASK) == MAPID_STAR_EMPEROR || (sd->class_ & MAPID_THIRDMASK) == MAPID_SOUL_REAPER) { clif_displaymessage(fd, msg_txt(sd,740)); // This job has no alternate body styles. return -1; }*/
Pallete color for bodystyle 1 copy in Data/palette/¸ö/costume_1:
Example Paladin: copy pallete Royal Guard and change name for sprite Paladin.
Male: Basic + Mount Lion Æȶóµò_³²_0_1.pal Æȶóµò_³²_1_1.pal Æȶóµò_³²_2_1.pal Æȶóµò_³²_3_1.pal Female: Basic + Mount Lion Æȶóµò_¿©_0_1.pal Æȶóµò_¿©_1_1.pal Æȶóµò_¿©_2_1.pal Æȶóµò_¿©_3_1.pal Male: Peco Mount ÆäÄÚÆȶóµò_³²_0_1.pal ÆäÄÚÆȶóµò_³²_1_1.pal ÆäÄÚÆȶóµò_³²_2_1.pal ÆäÄÚÆȶóµò_³²_3_1.pal Female: Peco Mount ÆäÄÚÆȶóµò_¿©_0_1.pal ÆäÄÚÆȶóµò_¿©_1_1.pal ÆäÄÚÆȶóµò_¿©_2_1.pal ÆäÄÚÆȶóµò_¿©_3_1.pal
- 1
- 2
-
18 hours ago, Notorius said:
Hello, I have doubts about how to add effects for the classes in the items. I don't know how they work. This is a bonus. I don't know how to make an effect work for high priest, another for soul linker and another for high wizard.
Script: |
bonus bInt,3;
bonus bMatkRate,15;
if (class == Job_Soul_Linker)
bonus2 bSkillAtk,"SL_SMA",25;
bonus2 bSkillAtk,"SL_STUN",25;
if (class == Job_Mage)
bonus2 bSkillAtk," ",25;
bonus2 bSkillAtk," ",25;
if (class == Job_Acolyte)
bonus2 bSkillAtk," ",25;
is this the correct way?
Script: |
bonus bInt,3;
bonus bMatkRate,15;
if (class == Job_Soul_Linker){
bonus2 bSkillAtk,"SL_SMA",25;
bonus2 bSkillAtk,"SL_STUN",25;}
if (class == Job_High_Wizard){
bonus2 bSkillAtk," ",25;
bonus2 bSkillAtk," ",25;}
if (class == Job_High_Priest){
bonus2 bSkillAtk," ",25;} -
50 minutes ago, AinsLord said:
what about baby 3rd job
and 1st job baby
coz what i was trying is when they equip
3rd job baby suit they will turn baby 3rd job in jRO sprites
and when they equip 1st baby job suit
they will turn baby crusader etc
Use: (Example)
EquipScript: | changebase Job_Baby_Rune_Knight; UnEquipScript: | changebase Class;
-
-
How disable?
[Guide] Add new Hateffect (Aura Style)
in Source Releases
Posted
Ragnarok Online Pre-Renewal(Offline) and guide for easy update.
- Data Folder + Server: Google Drive or MediaFire
- Client RO: Google Drive or MediaFire
Guide for start server and Play:
0. Dowloand Client RO and Update. 1. Download Data Folder + Server 2. Copy all files C:/MyServer/Client (In folder Ragnarok Onmline). 3. Run C:/MyServer/UwAmp/UwAmp.exe 4. Start Server C:/MyServer/rathena/runserver.exe Enjoy!!!