Jump to content
  • 0

Question

Posted

Hi all

im trying to adapt a community buffer to h5

the problem is some class l2skill and skilltable doesnt exist

i tryied to change l2skill for skill, getinfo for getskill and skilltable for skilldata but still error i think it is more complicated than that

/*
 * 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://l2jpsproject.eu/>.
 */
package com.l2jserver.gameserver.communitybbs.Managers;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.l2jserver.Config;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.datatables.SkillTable;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.skills.L2Skill;

/**
 * @RobikBobik
 */
public class BuffBBSManager extends BaseBBSManager
{
	private static BuffBBSManager _instance = new BuffBBSManager();
	
	public int allskillid_1[][];
	
	public BuffBBSManager()
	{
		Load();
	}
	
	public static BuffBBSManager getInstance()
	{
		if (_instance == null)
		{
			_instance = new BuffBBSManager();
		}
		return _instance;
	}
	
	public void Load()
	{
		
		Connection connn = null;
		try
		{
			connn = L2DatabaseFactory.getInstance().getConnection();
			PreparedStatement count = connn.prepareStatement("SELECT COUNT(*) FROM communitybuff");
			ResultSet countt = count.executeQuery();
			countt.next();
			allskillid_1 = new int[countt.getInt(1)][4];
			PreparedStatement table = connn.prepareStatement("SELECT * FROM communitybuff");
			ResultSet skills = table.executeQuery();
			for (int i = 0; i < allskillid_1.length; i++)
			{
				skills.next();
				allskillid_1[i][0] = skills.getInt(2);
				allskillid_1[i][1] = skills.getInt(3);
				allskillid_1[i][2] = skills.getInt(4);
				allskillid_1[i][3] = skills.getInt(5);
			}
			
			count.close();
			countt.close();
			skills.close();
			table.close();
			connn.close();
		}
		catch (Exception ignored)
		{
		}
	}
	
	@Override
	public void parsecmd(String command, L2PcInstance activeChar)
	{
		String[] parts = command.split("_");
		boolean petbuff = false;
		
		if (!(parts[2].startsWith("buff")))
		{
			return;
		}
		
		if ((parts[4] != null) && parts[4].startsWith(" Player"))
		{
			petbuff = false;
		}
		if ((parts[4] != null) && parts[4].startsWith(" Pet"))
		{
			petbuff = true;
		}
		
		if (parts[3].startsWith("FIGHERLIST"))
		{
			FIGHERLIST(activeChar, petbuff);
		}
		
		if (parts[3].startsWith("MAGELIST"))
		{
			MAGELIST(activeChar, petbuff);
		}
		/*
		 * if (parts[3].startsWith("SAVE")) { SAVE(activeChar, petbuff); }
		 */
		
		if (parts[3].startsWith("BUFF"))
		{
			BUFF(activeChar, petbuff);
		}
		
		if (parts[3].startsWith("CANCEL"))
		{
			CANCEL(activeChar, petbuff);
		}
		
		if (parts[3].startsWith("REGMP"))
		{
			REGMP(activeChar, petbuff);
		}
		
		if (parts[3].startsWith("REGHP"))
		{
			REGHP(activeChar, petbuff);
		}
		
		if (parts[3].startsWith("REGCP"))
		{
			REGCP(activeChar, petbuff);
		}
		
		for (int key = 0; key < allskillid_1.length; key++)
		{
			L2Skill skill;
			int skilllevel;
			
			skilllevel = SkillTable.getInstance().getMaxLevel(allskillid_1[key][0]);
			skill = SkillTable.getInstance().getInfo(allskillid_1[key][0], skilllevel);
			if (parts[3].startsWith(skill.getName()))
			{
				SKILL(activeChar, petbuff, key, skill);
			}
		}
	}
	
	private void FIGHERLIST(L2PcInstance activeChar, boolean petbuff)
	{
		int arr$[][] = allskillid_1;
		int len$ = arr$.length;
		for (int i$ = 0; i$ < len$; i$++)
		{
			int aSkillid[] = arr$[i$];
			if ((aSkillid[1] != 1) && (aSkillid[1] != 3))
			{
				continue;
			}
			L2Skill skill;
			int skilllevel;
			if (Config.BUFF_COST)
			{
				if (activeChar.destroyItemByItemId(null, aSkillid[3], aSkillid[2], activeChar, true))
				{
					skilllevel = SkillTable.getInstance().getMaxLevel(aSkillid[0]);
					skill = SkillTable.getInstance().getInfo(aSkillid[0], skilllevel);
					if (!petbuff)
					{
						skill.applyEffects(activeChar, activeChar);
					}
					else
					{
						skill.applyEffects(activeChar.getSummon(), activeChar.getSummon());
					}
				}
				else
				{
					activeChar.sendMessage("You don't have adena for using service.");
				}
				continue;
			}
			skilllevel = SkillTable.getInstance().getMaxLevel(aSkillid[0]);
			skill = SkillTable.getInstance().getInfo(aSkillid[0], skilllevel);
			if (!petbuff)
			{
				skill.applyEffects(activeChar, activeChar);
			}
			else
			{
				skill.applyEffects(activeChar.getSummon(), activeChar.getSummon());
			}
		}
		
	}
	
	private void MAGELIST(L2PcInstance activeChar, boolean petbuff)
	{
		int arr$[][] = allskillid_1;
		int len$ = arr$.length;
		for (int i$ = 0; i$ < len$; i$++)
		{
			int aSkillid[] = arr$[i$];
			if ((aSkillid[1] != 2) && (aSkillid[1] != 3))
			{
				continue;
			}
			L2Skill skill;
			int skilllevel;
			if (Config.BUFF_COST)
			{
				if (activeChar.destroyItemByItemId(null, aSkillid[3], aSkillid[2], activeChar, true))
				{
					skilllevel = SkillTable.getInstance().getMaxLevel(aSkillid[0]);
					skill = SkillTable.getInstance().getInfo(aSkillid[0], skilllevel);
					if (!petbuff)
					{
						skill.applyEffects(activeChar, activeChar);
					}
					else
					{
						skill.applyEffects(activeChar.getSummon(), activeChar.getSummon());
					}
				}
				else
				{
					activeChar.sendMessage("You don't have adena for using service.");
				}
				continue;
			}
			skilllevel = SkillTable.getInstance().getMaxLevel(aSkillid[0]);
			skill = SkillTable.getInstance().getInfo(aSkillid[0], skilllevel);
			if (!petbuff)
			{
				skill.applyEffects(activeChar, activeChar);
			}
			else
			{
				skill.applyEffects(activeChar.getSummon(), activeChar.getSummon());
			}
		}
		
	}
	
	private void BUFF(L2PcInstance activeChar, boolean petbuff)
	{
		Connection con = null;
		try
		{
			con = L2DatabaseFactory.getInstance().getConnection();
			PreparedStatement statement = con.prepareStatement("SELECT * FROM community_skillsave WHERE charId=?;");
			statement.setInt(1, activeChar.getObjectId());
			ResultSet rcln = statement.executeQuery();
			rcln.next();
			if (!petbuff)
			{
				char allskills[] = rcln.getString(2).toCharArray();
				if (allskills.length == allskillid_1.length)
				{
					for (int i = 0; i < allskillid_1.length; i++)
					{
						if (allskills[i] == '1')
						{
							if (Config.BUFF_COST)
							{
								if (activeChar.destroyItemByItemId(null, allskillid_1[i][3], allskillid_1[i][2], activeChar, true))
								{
									int skilllevel = SkillTable.getInstance().getMaxLevel(allskillid_1[i][0]);
									L2Skill skill = SkillTable.getInstance().getInfo(allskillid_1[i][0], skilllevel);
									skill.applyEffects(activeChar, activeChar);
									activeChar.getLevel();
								}
								else
								{
									activeChar.sendMessage("You don't have adena for using service.");
								}
							}
							else
							{
								int skilllevel = SkillTable.getInstance().getMaxLevel(allskillid_1[i][0]);
								L2Skill skill = SkillTable.getInstance().getInfo(allskillid_1[i][0], skilllevel);
								skill.applyEffects(activeChar, activeChar);
							}
						}
					}
					
				}
			}
			else
			{
				char petskills[] = rcln.getString(3).toCharArray();
				if (petskills.length == allskillid_1.length)
				{
					for (int i = 0; i < allskillid_1.length; i++)
					{
						if (petskills[i] != '1')
						{
							continue;
						}
						if (Config.BUFF_COST)
						{
							if (activeChar.destroyItemByItemId(null, allskillid_1[i][3], allskillid_1[i][2], activeChar, true))
							{
								int skilllevel = SkillTable.getInstance().getMaxLevel(allskillid_1[i][0]);
								L2Skill skill = SkillTable.getInstance().getInfo(allskillid_1[i][0], skilllevel);
								skill.applyEffects(activeChar.getSummon(), activeChar.getSummon());
							}
							else
							{
								activeChar.sendMessage("You don't have adena for using service.");
							}
						}
						else
						{
							int skilllevel = SkillTable.getInstance().getMaxLevel(allskillid_1[i][0]);
							L2Skill skill = SkillTable.getInstance().getInfo(allskillid_1[i][0], skilllevel);
							skill.applyEffects(activeChar.getSummon(), activeChar.getSummon());
						}
					}
					
				}
			}
			rcln.close();
			statement.close();
		}
		catch (Exception ignored)
		{
			try
			{
				if (con != null)
				{
					con.close();
				}
			}
			catch (SQLException e)
			{
				e.printStackTrace();
			}
			
		}
		try
		{
			if (con != null)
			{
				con.close();
			}
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
	}
	
	private void CANCEL(L2PcInstance activeChar, boolean petbuff)
	{
		if (!petbuff)
		{
			activeChar.stopAllEffects();
		}
		else
		{
			activeChar.getSummon().stopAllEffects();
		}
	}
	
	private void REGMP(L2PcInstance activeChar, boolean petbuff)
	{
		if (!petbuff)
		{
			activeChar.setCurrentMp(activeChar.getMaxMp());
		}
		else
		{
			activeChar.getSummon().setCurrentMp(activeChar.getSummon().getMaxMp());
		}
	}
	
	private void REGHP(L2PcInstance activeChar, boolean petbuff)
	{
		if (!petbuff)
		{
			activeChar.setCurrentHp(activeChar.getMaxHp());
		}
		else
		{
			activeChar.getSummon().setCurrentHp(activeChar.getSummon().getMaxHp());
		}
	}
	
	private void REGCP(L2PcInstance activeChar, boolean petbuff)
	{
		if (!petbuff)
		{
			activeChar.setCurrentCp(activeChar.getMaxCp());
		}
		else
		{
			activeChar.getSummon().setCurrentCp(activeChar.getSummon().getMaxCp());
		}
	}
	
	private void SKILL(L2PcInstance activeChar, boolean petbuff, int key, L2Skill skill)
	{
		if (Config.BUFF_COST)
		{
			if (activeChar.destroyItemByItemId(null, allskillid_1[key][3], allskillid_1[key][2], activeChar, true))
			{
				if (!petbuff)
				{
					skill.applyEffects(activeChar, activeChar);
				}
				else
				{
					skill.applyEffects(activeChar.getSummon(), activeChar.getSummon());
				}
			}
			else
			{
				activeChar.sendMessage("You don't have adena for using service.");
			}
		}
		else if (!petbuff)
		{
			skill.applyEffects(activeChar, activeChar);
		}
		else
		{
			skill.applyEffects(activeChar.getSummon(), activeChar.getSummon());
		}
	}
	
	/*
	 * private void SAVE(L2PcInstance activeChar, boolean petbuff) { Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement stat = con.prepareStatement("SELECT COUNT(*) FROM community_skillsave WHERE charId=?;"); stat.setInt(1,
	 * activeChar.getObjectId()); ResultSet rset = stat.executeQuery(); rset.next(); String allbuff = ""; if (!petbuff) { L2Effect skill[] = activeChar.getAllEffectsCB(); boolean flag = true; int arr$[][] = allskillid_1; int len$ = arr$.length; for (int i$ = 0; i$ < len$; i$++) { int aSkillid[] =
	 * arr$[i$]; for (int j = 0; j < skill.length; j++) { if (aSkillid[0] == skill[j].getId()) { allbuff = (new StringBuilder()).append(allbuff).append(1).toString(); flag = false; } if ((j == (skill.length - 1)) && flag) { allbuff = (new StringBuilder()).append(allbuff).append(0).toString(); } }
	 * flag = true; } if (rset.getInt(1) == 0) { PreparedStatement statement1 = con.prepareStatement("INSERT INTO community_skillsave (charId,skills) values (?,?)"); statement1.setInt(1, activeChar.getObjectId()); statement1.setString(2, allbuff); statement1.execute(); statement1.close(); } else {
	 * PreparedStatement statement = con.prepareStatement("UPDATE community_skillsave SET skills=? WHERE charId=?;"); statement.setString(1, allbuff); statement.setInt(2, activeChar.getObjectId()); statement.execute(); statement.close(); } } else { L2Effect skill[] =
	 * activeChar.getSummon().getAllEffectsCB(); boolean flag = true; int arr$[][] = allskillid_1; int len$ = arr$.length; for (int i$ = 0; i$ < len$; i$++) { int aSkillid[] = arr$[i$]; for (int j = 0; j < skill.length; j++) { if (aSkillid[0] == skill[j].getId()) { allbuff = (new
	 * StringBuilder()).append(allbuff).append(1).toString(); flag = false; } if ((j == (skill.length - 1)) && flag) { allbuff = (new StringBuilder()).append(allbuff).append(0).toString(); } } flag = true; } if (rset.getInt(1) == 0) { PreparedStatement statement1 =
	 * con.prepareStatement("INSERT INTO community_skillsave (charId,pet) values (?,?)"); statement1.setInt(1, activeChar.getObjectId()); statement1.setString(2, allbuff); statement1.execute(); statement1.close(); } else { PreparedStatement statement =
	 * con.prepareStatement("UPDATE community_skillsave SET pet=? WHERE charId=?;"); statement.setString(1, allbuff); statement.setInt(2, activeChar.getObjectId()); statement.execute(); statement.close(); } } rset.close(); stat.close(); } catch (Exception ignored) { try { if (con != null) {
	 * con.close(); } } catch (SQLException e) { e.printStackTrace(); } } try { if (con != null) { con.close(); } } catch (SQLException e) { e.printStackTrace(); } }
	 */
	@Override
	public void parsewrite(String s, String s1, String s2, String s3, String s4, L2PcInstance l2pcinstance)
	{
	}
}

Thank You For Your Help

5 answers to this question

Recommended Posts

  • 0
Posted
		catch (Exception ignored)
		{
			try
			{
				if (con != null)
				{
					con.close();
				}
			}
			catch (SQLException e)
			{
				e.printStackTrace();
			}
			
		}
		try
		{
			if (con != null)
			{
				con.close();
			}
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}

Masterpiece! :troll:

  • 0
Posted (edited)
	private void REGMP(L2PcInstance activeChar, boolean petbuff)
	{
		if (!petbuff)
		{
			activeChar.setCurrentMp(activeChar.getMaxMp());
		}
		else
		{
			activeChar.getSummon().setCurrentMp(activeChar.getSummon().getMaxMp());
		}
	}
	
	private void REGHP(L2PcInstance activeChar, boolean petbuff)
	{
		if (!petbuff)
		{
			activeChar.setCurrentHp(activeChar.getMaxHp());
		}
		else
		{
			activeChar.getSummon().setCurrentHp(activeChar.getSummon().getMaxHp());
		}
	}
	
	private void REGCP(L2PcInstance activeChar, boolean petbuff)
	{
		if (!petbuff)
		{
			activeChar.setCurrentCp(activeChar.getMaxCp());
		}
		else
		{
			activeChar.getSummon().setCurrentCp(activeChar.getSummon().getMaxCp());
		}
	}
	
	private void SKILL(L2PcInstance activeChar, boolean petbuff, int key, L2Skill skill)
	{
		if (Config.BUFF_COST)
		{
			if (activeChar.destroyItemByItemId(null, allskillid_1[key][3], allskillid_1[key][2], activeChar, true))
			{
				if (!petbuff)
				{
					skill.applyEffects(activeChar, activeChar);
				}
				else
				{
					skill.applyEffects(activeChar.getSummon(), activeChar.getSummon());
				}
			}
			else
			{
				activeChar.sendMessage("You don't have adena for using service.");
			}
		}
		else if (!petbuff)
		{
			skill.applyEffects(activeChar, activeChar);
		}
		else
		{
			skill.applyEffects(activeChar.getSummon(), activeChar.getSummon());
		}
	}
	

 

 

1432384939474.jpg

Edited by LightFusion

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.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...