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.
Hola, gente bella como estan? Acabo de terminar de compilar el proyecto L2jFrozen Rev: 1132 (viejisimo)
No tengo problemas con que sea muy viejo, ya que el proyecto es para mi y mis hijos. (Lan/Offline) no es para ponerlo en línea. Quiero aprender y darles a mis hijos más comodidades a la hora de jugar. y por mi parte, también experimentar con el juego.
Mi problema es que no se mucho del tema. Pude hacer algunas configuraciones Basicas a mi gusto y el de mis hijos, pero nunca compila ni nada de eso... Estaria necesitando ayuda por parte de ustedes, la comunidad... Quiero simplemente Quitar todas las restricciones de Subclases, Quitar restriccion de "Overlord, Warsmith y subclase de elfos oscuros con elfos blancos y alrevez" desde ya muchas gracias! saludos comunidad
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.