I have a question. On my server, I successfully joined Dance/Songs and Buffs count.
But question is, how can I split maxBuffCount for mages and fighters? Especially I want 25 buffs for mages and ... 30 buffs for fighters??
I currently use Scheme buffer by House. In buffer, I splited it successfully. Only thing, I added is isMageClass boolean: (BUFFS_MAX_AMMOUNT config setted to 25, so on fighters it adds 5 slots)
else if (currentCommand.startsWith("skill"))
{
String skill_group = st.nextToken();
String scheme_key = st.nextToken();
int skill_id = Integer.parseInt(st.nextToken());
int level = BufferSkillsTable.getInstance().getSkillLevelById(skill_id);
int maxBuffs;
if(player.isMageClass())
maxBuffs = Config.BUFFS_MAX_AMOUNT + Math.max(0, getSkillLevel(L2Skill.SKILL_DIVINE_INSPIRATION));
else
maxBuffs = Config.BUFFS_MAX_AMOUNT + 5 + Math.max(0, getSkillLevel(L2Skill.SKILL_DIVINE_INSPIRATION));
if (currentCommand.startsWith("skillselect") && !scheme_key.equalsIgnoreCase("unselected"))
{
if (CharSchemesTable.getInstance().getScheme(player.getObjectId(), scheme_key).size()< maxBuffs)
CharSchemesTable.getInstance().getScheme(player.getObjectId(), scheme_key).add(SkillTable.getInstance().getInfo(skill_id, level));
else
player.sendMessage("You can have only " + maxBuffs + " buffs.");
}
else if (currentCommand.startsWith("skillunselect"))
{
CharSchemesTable.getInstance().getScheme(player.getObjectId(), scheme_key).remove(SkillTable.getInstance().getInfo(skill_id, level));
}
showEditSchemeWindow(player, skill_group, scheme_key);
}
But now, in gameserver/model/CharEffectsList.java, in method addEffectFromQueue I need to make similar thing - boolean, if player's class is Mage and set different buff count.
But... there is a problem. I need L2PcInstance variable (something like "player" in buffer) and i don't know, how to make it. I've tried to cast _owner variable (L2Character) but it gave me error... so guys, somebody knows, how to do it? Code looks like this:
private void addEffectFromQueue(L2Effect newEffect)
{
if (newEffect == null) return;
L2Skill newSkill = newEffect.getSkill();
//This is, what i need to declare
L2PcInstance player == ???
//I tried things like this:
//L2PcInstance player = _owner.getActingPlayer();
//L2PcInstance player = (L2PcInstance)_owner;
//L2PcInstance player = getClient().getActiveChar();
int maxBuffs = _owner.getMaxBuffCount();
if(player.isMageClass())
maxBuffs = _owner.getMaxBuffCount() + 5;
if (newSkill.isDebuff())
{
if (_debuffs == null) _debuffs = new FastList<L2Effect>();
for (L2Effect e : _debuffs)
{
if (e != null
&& e.getSkill().getId() == newEffect.getSkill().getId()
&& e.getEffectType() == newEffect.getEffectType()
&& e.getStackOrder() == newEffect.getStackOrder()
&& e.getStackType().equals(newEffect.getStackType()))
{
// Started scheduled timer needs to be canceled.
newEffect.stopEffectTask();
return;
}
}
_debuffs.addLast(newEffect);
}
else
{
if (_buffs == null) _buffs = new FastList<L2Effect>();
for (L2Effect e : _buffs)
{
if (e != null
&& e.getSkill().getId() == newEffect.getSkill().getId()
&& e.getEffectType() == newEffect.getEffectType()
&& e.getStackOrder() == newEffect.getStackOrder()
&& e.getStackType().equals(newEffect.getStackType()))
{
e.exit(); // exit this
}
}
// if max buffs, no herb effects are used, even if they would replace one old
if (newEffect.isHerbEffect() && getBuffCount() >= maxBuffs)
{
newEffect.stopEffectTask();
return;
}
// Remove first buff when buff list is full
if (!doesStack(newSkill) && !newSkill.is7Signs())
{
int effectsToRemove;
//if (newSkill.isDance())
//{
// effectsToRemove = getDanceCount() - Config.DANCES_MAX_AMOUNT;
// if (effectsToRemove >= 0)
// {
// for (L2Effect e : _buffs)
// {
// if (e == null || !e.getSkill().isDance())
// continue;
// effectsToRemove--;
// if (effectsToRemove < 0)
// break;
// }
// }
//}
//else
//{
effectsToRemove = getBuffCount() - maxBuffs;
if (effectsToRemove >= 0)
{
switch (newSkill.getSkillType())
{
case BUFF:
case REFLECT:
case HEAL_PERCENT:
case MANAHEAL_PERCENT:
for (L2Effect e : _buffs)
{
//if (e == null || e.getSkill().isDance())
// continue;
if (e == null)
continue;
switch (e.getSkill().getSkillType())
{
case BUFF:
case REFLECT:
case HEAL_PERCENT:
case MANAHEAL_PERCENT:
e.exit();
effectsToRemove--;
break; // break switch()
default:
continue; // continue for()
}
if (effectsToRemove < 0)
break; // break for()
}
}
}
//}
}
I just need, how to create L2PcInstance variable (like "player" in House's buffer), or how to make boolean, which check if player is mage... Anybody knows, how to do it?
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
DISCORD :
utchiha_market
telegram :
https://t.me/utchiha_market
SELLIX STORE :
https://utchihamkt.mysellix.io/
Join our server for more products :
https://discord.gg/hood-services
https://campsite.bio/utchihaamkt
hello everyone !
I need help with a l2script Rev H5-Salvation/Classic build. I compiled the project, installed everything but I can't log in to the server, it won't log me in. I tried a thousand ways without good results. I leave you the error when logging in either with the H5-Salvation Client.
ERROR ---> WARN: IPBANMANAGER ---> IP !!!!
I'm waiting for help! Thank you!
Question
Tristen
Hello,
I have a question. On my server, I successfully joined Dance/Songs and Buffs count.
But question is, how can I split maxBuffCount for mages and fighters? Especially I want 25 buffs for mages and ... 30 buffs for fighters??
I currently use Scheme buffer by House. In buffer, I splited it successfully. Only thing, I added is isMageClass boolean: (BUFFS_MAX_AMMOUNT config setted to 25, so on fighters it adds 5 slots)
But now, in gameserver/model/CharEffectsList.java, in method addEffectFromQueue I need to make similar thing - boolean, if player's class is Mage and set different buff count.
But... there is a problem. I need L2PcInstance variable (something like "player" in buffer) and i don't know, how to make it. I've tried to cast _owner variable (L2Character) but it gave me error... so guys, somebody knows, how to do it? Code looks like this:
I just need, how to create L2PcInstance variable (like "player" in House's buffer), or how to make boolean, which check if player is mage... Anybody knows, how to do it?
Thanks for answers.
P.S. I'm using L2J orig, rev 6321. Gracia Final.
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.