Jump to content

Recommended Posts

Posted

 i want to Modification this bata npc code to make players pay for this Services

 

pay item id 57 

 

 

package l2f.gameserver.model.instances;

import java.sql.Connection;
import java.sql.PreparedStatement;

import l2f.commons.dbutils.DbUtils;
import l2f.gameserver.database.DatabaseFactory;
import l2f.gameserver.model.Player;
import l2f.gameserver.model.entity.olympiad.Olympiad;
import l2f.gameserver.network.serverpackets.L2GameServerPacket;
import l2f.gameserver.network.serverpackets.PledgeShowInfoUpdate;
import l2f.gameserver.network.serverpackets.SkillList;
import l2f.gameserver.network.serverpackets.UserInfo;
import l2f.gameserver.tables.SkillTable;
import l2f.gameserver.templates.npc.NpcTemplate;
import l2f.gameserver.utils.Log;

public final class BetaNPCInstance extends NpcInstance
{
	/**
	 * Author Ady
	 */
	private static final long serialVersionUID = 5938813598479742068L;

	public BetaNPCInstance(int objectId, NpcTemplate template)
	{
		super(objectId, template);
	}
	
	@Override
	public void onBypassFeedback(Player player, String command)
	{
		if (!canBypassCheck(player, this))
		{
			return;
		}
		if (command.equalsIgnoreCase("change_sex"))
		{
			Connection con = null;
			PreparedStatement offline = null;
			try
			{
				con = DatabaseFactory.getInstance().getConnection();
				offline = con.prepareStatement("UPDATE characters SET sex = ? WHERE obj_Id = ?");
				offline.setInt(1, player.getSex() == 1 ? 0 : 1);
				offline.setInt(2, player.getObjectId());
				offline.executeUpdate();
			}
			catch (Exception e)
			{
				e.printStackTrace();
				return;
			}
		finally
			{
				DbUtils.closeQuietly(con, offline);
			}
			
			player.changeSex();
			player.sendMessage("Your gender has been changed !!");
			Log.add(new StringBuilder().append("Character ").append(player).append("  changed sex to ").append(player.getSex() == 1 ? "male" : "female").toString(), "renames");
		}
		else if (command.equalsIgnoreCase("add_clan_reputation"))
		{
			if (player.getClan() != null)
			{
				player.getClan().incReputation(10000, false, "BetaNpc");
				player.getClan().broadcastToOnlineMembers(new L2GameServerPacket[]
				{
					new PledgeShowInfoUpdate(player.getClan())
				});
				player.sendMessage("Your clan received 10 000 clan reputation!");
			}
			else
			{
				player.sendMessage("You don't have clan to use this feature!");
			}
		}
		else if (command.equalsIgnoreCase("add_exp_sp"))
		{
			player.addExpAndSp(999999999L, 999999999L);
			player.addExpAndSp(999999999L, 999999999L);
			player.addExpAndSp(999999999L, 999999999L);
			player.addExpAndSp(999999999L, 999999999L);
			player.addExpAndSp(999999999L, 999999999L);
			player.addExpAndSp(999999999L, 999999999L);
			player.addExpAndSp(999999999L, 999999999L);
			player.addExpAndSp(999999999L, 999999999L);
		}
		else if (command.equalsIgnoreCase("add_fame"))
		{
			player.setFame(player.getFame() + 10000, "BetaNpc");
			player.sendPacket(new UserInfo(player));
			player.sendMessage("You received 10.000 fame points !");
		}
		else if (command.equalsIgnoreCase("give_noblesse"))
		{
			if (!player.isNoble())
			{
				Olympiad.addNoble(player.getPlayer());
				player.getPlayer().setNoble(true);
				player.getPlayer().updatePledgeClass();
				player.getPlayer().updateNobleSkills();
				player.getPlayer().sendPacket(new SkillList(player.getPlayer()));
				player.getPlayer().broadcastUserInfo(true);
				player.getInventory().addItem(7694, 1L, "nobleTiara");
				player.sendMessage("Congratulations! You gained noblesse rank.");
				player.broadcastUserInfo(true);
			}
			else if (player.isNoble())
			{
				player.sendMessage("You already have noblesse rank !");
			}
		}
		else if (command.equalsIgnoreCase("give_hero"))
		{
			if (!player.isHero())
			{
				player.setHero(true);
				player.updatePledgeClass();
				player.addSkill(SkillTable.getInstance().getInfo(395, 1));
				player.addSkill(SkillTable.getInstance().getInfo(396, 1));
				player.addSkill(SkillTable.getInstance().getInfo(1374, 1));
				player.addSkill(SkillTable.getInstance().getInfo(1375, 1));
				player.addSkill(SkillTable.getInstance().getInfo(1376, 1));
				player.sendPacket(new SkillList(player));
				player.getPlayer().broadcastUserInfo(true);
				player.sendMessage("Congratulations! You gained hero rank.");
				player.broadcastUserInfo(true);
			}
			else if (player.isNoble())
			{
				player.sendMessage("You already have hero rank !");
			}
		}
		else
		{
			super.onBypassFeedback(player, command);
		}
	}
	
	@Override
	public boolean isNpc()
	{
		return true;
	}
	
}

 

Posted (edited)

You should first use a method to check if player has enough adena and return message if insufficient.
Then at end of script another method should consume(remove) the adena and return message about the adena consumption.
You should do that for each option separately.
If u want it more complex than that.
You should create a config file and use a boolean to enable feature and string for adena amount per option.

Edited by Cherish
  • Vision locked this topic
Guest
This topic is now closed to further replies.


  • Posts

    • The character stops walking when using a mana potion. any can help me?   IemData item_begin    etcitem    728    [mana_potion]    item_type=etcitem    slot_bit_type={none}    armor_type=none    etcitem_type=potion    recipe_id=0    blessed=0    weight=180    default_action=action_skill_reduce    consume_type=consume_type_stackable    initial_count=1    maximum_count=20    soulshot_count=0    spiritshot_count=0    reduced_soulshot={}    reduced_spiritshot={}    reduced_mp_consume={}    immediate_effect=1    price=0    default_price=2000    item_skill=[s_mana_potion]    critical_attack_skill=[none]    attack_skill=[none]    magic_skill=[none]    item_skill_enchanted_four=[none]    material_type=liquid    crystal_type=none    crystal_count=0    is_trade=1    is_drop=1    is_destruct=1    physical_damage=0    random_damage=0    weapon_type=none    can_penetrate=0    critical=0    hit_modify=0    avoid_modify=0    dual_fhit_rate=0    shield_defense=0    shield_defense_rate=0    attack_range=0    damage_range={}    attack_speed=0    reuse_delay=10000    mp_consume=0    magical_damage=0    durability=0    damaged=0    physical_defense=0    magical_defense=0    mp_bonus=0    category={}    enchanted=0    html=[item_default.htm]    equip_pet={@ALL_PET}    magic_weapon=0    enchant_enable=0    can_equip_sex=-1    can_equip_race={}    can_equip_change_class=-1    can_equip_class={}    can_equip_agit=-1    can_equip_castle=-1    can_equip_castle_num={}    can_equip_clan_leader=-1    can_equip_clan_level=-1    can_equip_hero=-1    can_equip_nobless=-1    can_equip_chaotic=-1    item_end   SkillData   skill_begin    skill_name=[s_mana_potion]    skill_id=50004    level=1    operate_type=A2    magic_level=1    effect={{t_mp;57;3}}    is_magic=0    mp_consume2=0    cast_range=-1    effective_range=-1    skill_hit_time=0    skill_cool_time=0    skill_hit_cancel_time=0    reuse_delay=0    activate_rate=-1    lv_bonus_rate=0    basic_property=none    abnormal_time=15    abnormal_lv=1    abnormal_type=mp_recovery    attribute=attr_none    effect_point=0    target_type=self    affect_scope=single    affect_limit={0;0}    next_action=none    debuff=0    ride_state={@ride_none}    skill_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