-
Posts
765 -
Joined
-
Last visited
-
Days Won
19
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by Playtester
-
-
Hmm, maybe try a vanilla rAthena without modifications first. Your first goal should be to have no warnings at map-server start. Check if everything is working then.
If you want to to add episode 17 stuff, just do it one-by-one and check if it still works. That way you can find out what change breaks the equipment system.
-
Do you get any errors starting map-server? Looks like maybe the item db file is in wrong format and unable to read the job requirements properly.
-
Hmm, it's definitely not finding Windows SDK 10.0 even though it looks you have it installed going by the screenshot (you made sure to update after selecting those I hope)? Maybe try installing Visual Studio 2022. That's what I did.
-
What even is a "correct" formula when you customize max level and stats?
You could just put any required exp values you think look cool and are balanced if you want. Gravity didn't do it much differently in the old days.
-
The way I'd go about it is use the existing Cooldown functionality. The Cooldown is stored per skill, but you could just make Skill B and Skill C also store their cooldown as "Skill A".
And then just block Skill B and Skill C when there's a Cooldown for "Skill A".
All the code you need would be in skill.cpp.
You could for example take a look at WL_RELEASE because that actually fetches the Cooldown from another skill (the preserved skill) and applies it.
-
1
-
-
You will need to edit the source code. Open skill.cpp and search for SC_COMBO, then you find all parts with combo checks.
For example:
case MO_CHAINCOMBO: if(!sc) return false; if(sc->data[SC_BLADESTOP]) break; if(sc->data[SC_COMBO] && sc->data[SC_COMBO]->val1 == MO_TRIPLEATTACK) break; return false;This says you can use MO_CHAINCOMBO only if you have the status change SC_BLADESTOP or when you are in combo state (SC_COMBO) and the last skill was MO_TRIPLEATTACK.
("break;" here basically means it works, if you return false, it's blocked.)
-
This is already working in current rAthena master.
It's defined via status.yml now:
- Status: Reflectshield
Icon: EFST_REFLECTSHIELD
DurationLookup: CR_REFLECTSHIELD
Flags:
NoClearance: true
RequireShield: true
End:
Reflectdamage: true -
On 4/4/2022 at 7:38 AM, cook1e said:
Here is an example.
db/item_db.yml
# This file is a part of rAthena. # Copyright(C) 2021 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 Database ########################################################################### # # Item Settings # ########################################################################### # - Id Item ID. # AegisName Server name to reference the item in scripts and lookups, should use no spaces. # Name Name in English for displaying as output. # Type Item type. (Default: Etc) # SubType Weapon or Ammo type. (Default: 0) # Buy Buying price. When not specified, becomes double the sell price. (Default: 0) # Sell Selling price. When not specified, becomes half the buy price. (Default: 0) # Weight Item weight. Each 10 is 1 weight. (Default: 0) # Attack Weapon's attack. (Default: 0) # MagicAttack Weapon's magic attack. (Default: 0) # Defense Armor's defense. (Default: 0) # Range Weapon's attack range. (Default: 0) # Slots Available slots in item. (Default: 0) # Jobs Jobs that can equip the item. (Map default is 'All: true') # Classes Upper class types that can equip the item. (Map default is 'All: true') # Gender Gender that can equip the item. (Default: Both) # Locations Equipment's placement. (Default: None) # WeaponLevel Weapon level. (Default: 0) # EquipLevelMin Minimum required level to equip. (Default: 0) # EquipLevelMax Maximum level that can equip. (Default: 0) # Refineable If the item can be refined. (Default: false) # View View sprite of an item. (Default: 0) # AliasName Another item's AegisName that will be sent to the client instead of this item's AegisName. (Default: null) # Flags: Item flags. (Default: null) # BuyingStore If the item is available for Buyingstores. (Default: false) # DeadBranch If the item is a Dead Branch. (Default: false) # Container If the item is part of a container. (Default: false) # UniqueId If the item is a unique stack. (Default: false) # BindOnEquip If the item is bound to the character upon equipping. (Default: false) # DropAnnounce If the item has a special announcement to self on drop. (Default: false) # NoConsume If the item is consumed on use. (Default: false) # DropEffect If the item has a special effect on the ground when dropped by a monster. (Default: None) # Delay: Item use delay. (Default: null) # Duration Duration of delay in seconds. # Status Status Change used to track delay. (Default: None) # Stack: Item stack amount. (Default: null) # Amount Maximum amount that can be stacked. # Inventory If the stack is applied to player's inventory. (Default: true) # Cart If the stack is applied to the player's cart. (Default: false) # Storage If the stack is applied to the player's storage. (Default: false) # GuildStorage If the stack is applied to the player's guild storage. (Default: false) # NoUse: Conditions when the item is unusable. (Default: null) # Override Group level to override these conditions. # Sitting If the item can not be used while sitting. (Default: false) # Trade: Trade restrictions. (Default: null) # Override Group level to override these conditions. # NoDrop If the item can not be dropped. (Default: false) # NoTrade If the item can not be traded. (Default: false) # TradePartner If the item can not be traded to the player's partner. (Default: false) # NoSell If the item can not be sold. (Default: false) # NoCart If the item can not be put in a cart. (Default: false) # NoStorage If the item can not be put in a storage. (Default: false) # NoGuildStorage If the item can not be put in a guild storage. (Default: false) # NoMail If the item can not be put in a mail. (Default: false) # NoAuction If the item can not be put in an auction. (Default: false) # Script Script to execute when the item is used/equipped. (Default: null) # EquipScript Script to execute when the item is equipped. (Default: null) # UnEquipScript Script to execute when the item is unequipped or when a rental item expires. (Default: null) ########################################################################### Header: Type: ITEM_DB Version: 1 Footer: Imports: - Path: db/pre-re/item_db.yml Mode: Prerenewal - Path: db/re/item_db.yml Mode: Prerenewal - Path: db/re/item_db.yml Mode: Renewal - Path: db/import/item_db.yml
Technically that makes you load renewal items, but you should put /re/ before /pre-re/, otherwise all pre-renewal items will be overwritten by renewal stats which would be really bad.
Also, you will need to edit most of the items in the files first. For example you need to recalculate the DEF, change weapon level 5 to a different weapon level, etc.
It's honestly cleaner to go step-by-step and copy a few renewal items into import/item_db.yml and adjust them so they fit pre-renewal.
-
If you want status resistance of GTB still work as normal, then there's a battle config for it:
items.conf
Quote// Required level of bNoMagicDamage before Status Changes are blocked (Golden Thief Bug card).
// For example, if left at 50. An item can give bNoMagicDamage,40;
// which reduces magic damage by 40%, but does not blocks status changes.
gtb_sc_immunity: 50Be careful because it will also affect other cards that grant bNoMagicDamage of similar or higher power.
If you only want Lex Aeteran and Decrease Agi to be blocked but nothing else then you'll need to edit the source code: status.cpp -> status_get_sc_def
-
If you have an NVidia graphic card there is no easy way to fix this. You could remove the /lightmap and it fixes most of the issues, but then you won't have any shadows.
I personally upgraded to the currently recommended 2021-11-03 client. The graphic glitch caused by NVidia is strongly reduced there.
-
In case someone else runs into it: This updates makes VS require Windows 10 SDK to compile. If you are still running Windows 8.1 like me, it could be that you can't compile rAthena anymore.
But! You can just install Windows 10 SDK on Windows 8.1. It will tell you that the OS is not supported during installation, but it works anyway.
-
1
-
-
Using rAthena without modification? Made sure everybody is in the same party?
-
Already works like this. Just use rAthena.
-
It's a bug in the emulator itself, but it was fixed recently: https://github.com/rathena/rathena/commit/32525bad55cc5b715f2ad259b6310560089028ed
-
Okay I searched for a while and figured out the root cause is the config change that came with the commit above. It also affects pre-renewal.
You will need to find battle.conf config file and change:
// Who should have a baseatk value (makes str affect damage)? (Note 3) enable_baseatk: 0x29FBack to:
// Who should have a baseatk value (makes str affect damage)? (Note 3) enable_baseatk: 9-
1
-
-
Are you on renewal because if you are there are new damage calculations for monsters: https://github.com/rathena/rathena/commit/fe197bfa120aef5fd31c6896122b35fdc06774b4
Basically the ATK displayed in mobinfo is:
mob->status.batk + mob->status.rhw.atk, mob->status.batk + mob->status.rhw.atk2Base attack for monsters:
str = dstr + level;Atk is 80% of Atk.
Atk2 is 120% of Atk.
So let's take a look at lunatic:
// ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK
1063,LUNATIC,Lunatic,Lunatic,3,55,1,36,27,1,11,1,18,0,10,3,3,0,8,5
LEVEL=3
ATK1=11
STR=10
Base attack = 10+3 = 13
ATK1 = 11 * 0.8 = 8
ATK2 = 11 * 1.2 = 13So Lunatic damage is 21~26.
-
Did you try checking via @mi command?
-
Or if you want pre-renewal ASPD (but still everything else from renewal?), then you could just copy the pre-re/job_db1.txt to re/job_db1.txt.
-
Renewal or pre-renewal?
-
Just do the modifications you want in the skill_db.txt
For pre-re it would be this one: https://github.com/rathena/rathena/blob/master/db/pre-re/skill_db.txt
// 06 nk (skill damage properties): // 0x01 - No damage skill // 0x02 - Has splash area // 0x04 - Damage should be split among targets // 0x08 - Skill ignores caster's % damage cards (misc type always ignores) // 0x10 - Skill ignores elemental adjustments // 0x20 - Skill ignores target's defense (misc type always ignores) // 0x40 - Skill ignores target's flee (magic type always ignores) // 0x80 - Skill ignores target's def cards -
Make sure you modify the correct file. If you are compiling on renewal you have to modify /re/skill_cast_db.txt instead.
//-- CH_SOULCOLLECT 401,0,0,0,600000,0,0,2000Right now it's defined to have a 2 second fixed casting for the skill.
I don't know what you want to adjust but just put whatever values you want here.
Columns are described at top:
// SkillID,CastingTime,AfterCastActDelay,AfterCastWalkDelay,Duration1,Duration2,Cool Down,Fixed Casting Time -
2 hours ago, DrKraken said:
sir how about setting skill delay limit on specific skill only?
You do that in the skill_cast_db file:
https://github.com/rathena/rathena/blob/master/db/pre-re/skill_cast_db.txt
-
You probably messed up when enabling pre-renewal mode.
https://github.com/rathena/rathena/blob/master/src/config/renewal.hpp
In this file you need to uncomment:
//#define PREREDon't do any other changes to the file. Then do a full recompile of all servers.
-
Remove the call of "clif_skill_nodamage" in skill.cpp.
In case of AL_HEAL that would be here:
clif_skill_nodamage (src, bl, skill_id, heal, 1);If you don't want to remove it for HLIF_HEAL and AB_HIGHNESSHEAL then you need to write an "if".
-
2
-

Couldn't equip or use any item
in General Support
Posted
Hmm there seems to be an issue with the SQL version right now, I forwarded it to Lemongrass, he'll work on a fix.