Jump to content
  • 0

making the services by items


Question

Posted

hello guys how i can make this script working by coins and not free

package l2f.gameserver.model.instances;
2	
3	import java.sql.Connection;
4	import java.sql.PreparedStatement;
5	
6	import l2f.commons.dbutils.DbUtils;
7	import l2f.gameserver.database.DatabaseFactory;
8	import l2f.gameserver.model.Player;
9	import l2f.gameserver.model.entity.olympiad.Olympiad;
10	import l2f.gameserver.network.serverpackets.L2GameServerPacket;
11	import l2f.gameserver.network.serverpackets.PledgeShowInfoUpdate;
12	import l2f.gameserver.network.serverpackets.SkillList;
13	import l2f.gameserver.network.serverpackets.UserInfo;
14	import l2f.gameserver.tables.SkillTable;
15	import l2f.gameserver.templates.npc.NpcTemplate;
16	import l2f.gameserver.utils.Log;
17	
18	public final class BetaNPCInstance extends NpcInstance
19	{
20	        /**
21	         * 
22	         */
23	        private static final long serialVersionUID = 5938813598479742068L;
24	
25	        public BetaNPCInstance(int objectId, NpcTemplate template)
26	        {
27	                super(objectId, template);
28	        }
29	       
30	        @Override
31	        public void onBypassFeedback(Player player, String command)
32	        {
33	                if (!canBypassCheck(player, this))
34	                {
35	                        return;
36	                }
37	                if (command.equalsIgnoreCase("change_sex"))
38	                {
39	                        Connection con = null;
40	                        PreparedStatement offline = null;
41	                        try
42	                        {
43	                                con = DatabaseFactory.getInstance().getConnection();
44	                                offline = con.prepareStatement("UPDATE characters SET sex = ? WHERE obj_Id = ?");
45	                                offline.setInt(1, player.getSex() == 1 ? 0 : 1);
46	                                offline.setInt(2, player.getObjectId());
47	                                offline.executeUpdate();
48	                        }
49	                        catch (Exception e)
50	                        {
51	                                e.printStackTrace();
52	                                return;
53	                        }
54	                finally
55	                        {
56	                                DbUtils.closeQuietly(con, offline);
57	                        }
58	                       
59	                        player.changeSex();
60	                        player.sendMessage("Your gender has been changed !!");
61	                        Log.add(new StringBuilder().append("Character ").append(player).append("  changed sex to ").append(player.getSex() == 1 ? "male" : "female").toString(), "renames");
62	                }
63	                else if (command.equalsIgnoreCase("add_clan_reputation"))
64	                {
65	                        if (player.getClan() != null)
66	                        {
67	                                player.getClan().incReputation(10000, false, "BetaNpc");
68	                                player.getClan().broadcastToOnlineMembers(new L2GameServerPacket[]
69	                                {
70	                                        new PledgeShowInfoUpdate(player.getClan())
71	                                });
72	                                player.sendMessage("Your clan received 10 000 clan reputation!");
73	                        }
74	                        else
75	                        {
76	                                player.sendMessage("You don't have clan to use this feature!");
77	                        }
78	                }
79	                else if (command.equalsIgnoreCase("add_exp_sp"))
80	                {
81	                        player.addExpAndSp(999999999L, 999999999L);
82	                        player.addExpAndSp(999999999L, 999999999L);
83	                        player.addExpAndSp(999999999L, 999999999L);
84	                        player.addExpAndSp(999999999L, 999999999L);
85	                        player.addExpAndSp(999999999L, 999999999L);
86	                        player.addExpAndSp(999999999L, 999999999L);
87	                        player.addExpAndSp(999999999L, 999999999L);
88	                        player.addExpAndSp(999999999L, 999999999L);
89	                }
90	                else if (command.equalsIgnoreCase("add_fame"))
91	                {
92	                        player.setFame(player.getFame() + 10000, "BetaNpc");
93	                        player.sendPacket(new UserInfo(player));
94	                        player.sendMessage("You received 10.000 fame points !");
95	                }
96	                else if (command.equalsIgnoreCase("give_noblesse"))
97	                {
98	                        if (!player.isNoble())
99	                        {
100	                                Olympiad.addNoble(player.getPlayer());
101	                                player.getPlayer().setNoble(true);
102	                                player.getPlayer().updatePledgeClass();
103	                                player.getPlayer().updateNobleSkills();
104	                                player.getPlayer().sendPacket(new SkillList(player.getPlayer()));
105	                                player.getPlayer().broadcastUserInfo(true);
106	                                player.getInventory().addItem(7694, 1L, "nobleTiara");
107	                                player.sendMessage("Congratulations! You gained noblesse rank.");
108	                                player.broadcastUserInfo(true);
109	                        }
110	                        else if (player.isNoble())
111	                        {
112	                                player.sendMessage("You already have noblesse rank !");
113	                        }
114	                }
115	                else if (command.equalsIgnoreCase("give_hero"))
116	                {
117	                        if (!player.isHero())
118	                        {
119	                                player.setHero(true);
120	                                player.updatePledgeClass();
121	                                player.addSkill(SkillTable.getInstance().getInfo(395, 1));
122	                                player.addSkill(SkillTable.getInstance().getInfo(396, 1));
123	                                player.addSkill(SkillTable.getInstance().getInfo(1374, 1));
124	                                player.addSkill(SkillTable.getInstance().getInfo(1375, 1));
125	                                player.addSkill(SkillTable.getInstance().getInfo(1376, 1));
126	                                player.sendPacket(new SkillList(player));
127	                                player.getPlayer().broadcastUserInfo(true);
128	                                player.sendMessage("Congratulations! You gained hero rank.");
129	                                player.broadcastUserInfo(true);
130	                        }
131	                        else if (player.isNoble())
132	                        {
133	                                player.sendMessage("You already have hero rank !");
134	                        }
135	                }
136	                else
137	                {
138	                        super.onBypassFeedback(player, command);
139	                }
140	        }
141	       
142	        @Override
143	        public boolean isNpc()
144	        {
145	                return true;
146	        }
147	       
148	}

 

5 answers to this question

Recommended Posts

  • 0
Posted (edited)
3 hours ago, HorrorSlyer said:

if (command.equalsIgnoreCase("change_sex"))

{

.

.

.

}

 

example
 

if (command.equalsIgnoreCase("change_sex"))
{
	if (activeChar.getInventory().getCountOf(Config.getChangeSexPriceId()) >= Config.getChangeSexPriceCount())
	{
		activeChar.getInventory().destroyItemByItemId(Config.getChangeSexPriceId(), Config.getChangeSexPriceCount(), "SexChange");
.
.
.
Your Code Here
.
.
.
	}
	else
		activeChar.sendMessage("Error: You don't have items to pay.");
}

 

Edited by L2 TokTil
Quote
  • 0
Posted

@Nightwolf    

if (!player.isNoble())
99	                        {
100	                                Olympiad.addNoble(player.getPlayer());
101	                                player.getPlayer().setNoble(true);
102	                                player.getPlayer().updatePledgeClass();
103	                                player.getPlayer().updateNobleSkills();
104	                                player.getPlayer().sendPacket(new SkillList(player.getPlayer()));
105	                                player.getPlayer().broadcastUserInfo(true);
106	                                player.getInventory().addItem(7694, 1L, "nobleTiara");
107	                                player.sendMessage("Congratulations! You gained noblesse rank.");
108	                                player.broadcastUserInfo(true);
109	                        }
110	                        else if (player.isNoble())
111	                        {
112	                                player.sendMessage("You already have noblesse rank !");
113	                        }

 

  • 0
Posted (edited)
4 hours ago, L2 TokTil said:

 

example
 


if (command.equalsIgnoreCase("change_sex"))
{
	if (activeChar.getInventory().getCountOf(Config.getChangeSexPriceId()) >= Config.getChangeSexPriceCount())
	{
		activeChar.getInventory().destroyItemByItemId(Config.getChangeSexPriceId(), Config.getChangeSexPriceCount(), "SexChange");
.
.
.
Your Code Here
.
.
.
	}
	else
		activeChar.sendMessage("Error: You don't have items to pay.");
}

 

 

destroyItemByItemId its a boolean method. True if all item count destroyed ,false if not. So item count check is useless

Edited by Creamy G Colin
  • 0
Posted (edited)
24 minutes ago, Creamy G Colin said:

 

destroyItemByItemId its a boolean method. True if all item count destroyed ,false if not. So item count check is useless

 

If you use Player#destroyItemByItemId you are right, even the error message is included if the boolean is set to true.

 

In case you use getInventory() version, it isn't. It's generally used for "custom" message, eg. Lotto tickets / pet item with integrated level.

 

So that will simply be, error message included 

 

if (playerInstance.destroyItemByIt...)
{
    // code here
}

 

Edited by Tryskell
  • 0
Posted

thank's for the support guys example for gendre change service 

 

		if (command.equalsIgnoreCase("change_sex"))
		{
			if (player.getRace() == Race.kamael)
			{
				player.sendMessage("Not available for Kamael.");
				return;
			}
			if (Functions.getItemCount(player, Config.DONATOR_NPC_ITEM) < Config.DONATOR_NPC_COUNT_SEX)
			{
				player.sendMessage("You don't have enough " + Config.DONATOR_NPC_ITEM_NAME +"." );
				return;
			}

			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);
			}

			Functions.removeItem(player, Config.DONATOR_NPC_ITEM, Config.DONATOR_NPC_COUNT_SEX, "Removed");
			player.changeSex();
			player.setTransformation(251);
			player.sendMessage("Your gender has been changed!");
			player.broadcastUserInfo(true);
			player.setTransformation(0);
			System.out.println("Character " + player + "  changed sex via donation"); 
		}

 

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...