Jump to content
  • 0

Cancel subclass keep skills


Question

Posted

Hello fooooolks, i have one and big problem. I have stacksub server based on l2j-mobius. And i have npc Maximilian where player can add/change/cancel a subclass. All good. But, when player cancel a subclass to do another instead, skills from canceled subclass are retained. How i can make this to disappear one with cancel?

 

Thank you !

7 answers to this question

Recommended Posts

  • 0
Posted

            player.giveAvailableSkills();
            player.sendSkillList();

            player.checkAllowedSkills();

 

maybe this will help you 

  • 0
Posted

look one way is go to player.java or pcisntance.java what you have and search for

 

public boolean setActiveClass(int classIndex)

 

search for

restoreHenna(); or

 

            restoreSkills();
            rewardSkills();
            regiveTemporarySkills();  

and try to add checkAllowedSkills();  or restoreSkills();

  • 0
Posted

This is method available to restore player skills. An here should be a check for all subclasses available. And for that available subclasses to give their skills. And rest of skills to be deleted

 

private void restoreSkills()
	{
		try (Connection con = DatabaseFactory.getConnection();
			PreparedStatement ps = con.prepareStatement(RESTORE_SKILLS_FOR_CHAR))
		{
			// Retrieve all skills of this PlayerInstance from the database
			ps.setInt(1, getObjectId());
			try (ResultSet rs = ps.executeQuery())
			{
				while (rs.next())
				{
					final int id = rs.getInt("skill_id");
					final int level = rs.getInt("skill_level");
					
					// Create a Skill object for each record
					final Skill skill = SkillData.getInstance().getSkill(id, level);
					if (skill == null)
					{
						LOGGER.warning("Skipped null skill Id: " + id + " Level: " + level + " while restoring player skills for playerObjId: " + getObjectId());
						continue;
					}
					
					// Add the Skill object to the Creature _skills and its Func objects to the calculator set of the Creature
					addSkill(skill);
					
					if (Config.SKILL_CHECK_ENABLE && (!canOverrideCond(PlayerCondOverride.SKILL_CONDITIONS) || Config.SKILL_CHECK_GM) && !SkillTreeData.getInstance().isSkillAllowed(this, skill))
					{
						Util.handleIllegalPlayerAction(this, "Player " + getName() + " has invalid skill " + skill.getName() + " (" + skill.getId() + "/" + skill.getLevel() + "), class:" + ClassListData.getInstance().getClass(getClassId()).getClassName(), IllegalActionPunishmentType.BROADCAST);
						if (Config.SKILL_CHECK_REMOVE)
						{
							removeSkill(skill);
						}
					}
				}
			}
		}
		catch (Exception e)
		{
			LOGGER.log(Level.WARNING, "Could not restore character " + this + " skills: " + e.getMessage(), e);
		}
	}

 

  • 0
Posted

yes this is what it does but you need to make it run when players get class changed , you need to search for "public boolean setActiveClass(int classIndex)" or something like this fiind exact moment when class is changed and after that add 

checkAllowedSkills(); or  restoreSkills();

 

i try to help you but i have 0 experience in substack type servers

 

 

Guest
This topic is now closed to further replies.


  • Posts

    • Well...i dont wanna flame him or defame him ,2 months after the order and he havent delivered and tbh this isnt my issue...he just stopped responding,he didnt scammed me or anything like this..Just ghosting 😄
    • I cant respond for personal issues that anybody can face in real life.  About Nevesoma, for sure he gonna deliver you, just realize how many clients and orders he has. Please be patient, things need time. Sincerely.
    • Yeah…i will need other alternatives   Neves0ma i hired him to do a job and never delivered and keeps ghosting me Ave dont respond to me,i hired him and then canceled order and since then we cant work together 
    • The Dawn of Book in the NPC's hand isn't showing up. Is there a way to fix this?   This NPC is probably the only one in the game who wields a weapon with his left hand.   Weapon :[dawnn_book]    =    5802   I've tried several server-side programs, including Java emulators, and they all seem to have this problem. Or is there some special game mechanic controlling this NPC?   npc_begin teleporter 31081 [dawn_priest_giran] category={} level=70 exp=429634523 ex_crt_effect=1 unique=0 s_npc_prop_hp_rate=1 race=human sex=male skill_list={@s_npc_prop_race_human;@s_npc_prop_hp_lv_p0;@s_npc_prop_mp_lv_p0;@s_npc_prop_pa_lv_p0;@s_npc_prop_ma_lv_p0;@s_npc_prop_pd_lv_p0;@s_npc_prop_md_lv_p0;@s_npc_prop_armor_type_n;@s_npc_prop_weapon_type_fist;@s_full_magic_defence} slot_chest=[] slot_rhand=[] slot_lhand=[dawnn_book] collision_radius={8;8} collision_height={30.5;30.5} hit_time_factor=0.6 hit_time_factor_skill=-1 ground_high={120;0;0} ground_low={50;0;0} str=40 int=21 dex=30 wit=20 con=43 men=20 org_hp=2444.46819 org_hp_regen=7.5 org_mp=1345.8 org_mp_regen=2.7 base_attack_type=fist base_attack_range=40 base_damage_range={0;0;80;120} base_rand_dam=10 base_physical_attack=688.86373 base_critical=4 physical_hit_modify=5 base_attack_speed=253 base_reuse_delay=0 base_magic_attack=470.40463 base_defend=295.91597 base_magic_defend=216.53847 base_attribute_attack={none;0} base_attribute_defend={150;150;150;150;150;150;150} physical_avoid_modify=0 shield_defense_rate=20 shield_defense=147.957985 safe_height=100 soulshot_count=0 spiritshot_count=0 clan={} ignore_clan_list={} clan_help_range=300 undying=1 can_be_attacked=0 corpse_time=7 no_sleep_mode=0 agro_range=1000 passable_door=0 can_move=1 flying=0 has_summoner=0 targetable=1 show_name_tag=1 npc_ai={[dawn_priest_giran];{[MoveAroundSocial]=0};{[MoveAroundSocial1]=110};{[ssq_priest_type]=2}} event_flag={0} unsowing=1 private_respawn_log=0 acquire_exp_rate=0 acquire_sp=0 acquire_rp=0 corpse_make_list={} additional_make_list={} additional_make_multi_list={} ex_item_drop_list={} fake_class_id=-1 npc_end  
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock