Skip to content

RequestSellItem.java

Featured Replies

how do i get a player to sell anything in npc for 1 adena? 

 

7NPq0L3.jpg

 

 

 

Note: There is the option to go item by item and set the price to 1. but that would bring me a lot of work, in the code there is an easier way?

 

 

		
		long totalPrice = 0;
		// Proceed the sell
		for (UniqueItemHolder i : _items)
		{
			L2ItemInstance item = player.checkItemManipulation(i.getObjectId(), i.getCount(), "sell");
			if ((item == null) || (!item.isSellable()))
			{
				continue;
			}
			
			long price = item.getReferencePrice() / 100;
			totalPrice += price * i.getCount();
			if (((MAX_ADENA / i.getCount()) < price) || (totalPrice > MAX_ADENA))
			{
				Util.handleIllegalPlayerAction(player, "Warning!! Character " + player.getName() + " of account " + player.getAccountName() + " tried to purchase over " + MAX_ADENA + " adena worth of goods.", Config.DEFAULT_PUNISH);
				return;
			}
			
			if (Config.ALLOW_REFUND)
			{
				item = player.getInventory().transferItem("Sell", i.getObjectId(), i.getCount(), player.getRefund(), player, merchant);
			}
			else
			{
				item = player.getInventory().destroyItem("Sell", i.getObjectId(), i.getCount(), player, merchant);
			}
		}
		player.addAdena("Sell", totalPrice, merchant, false);
		
		// Update current load as well
		StatusUpdate su = player.makeStatusUpdate(StatusUpdate.CUR_LOAD);
		player.sendPacket(su);
		player.sendPacket(new ExBuySellList(player, taxRate, true));
	}
	

 

i think you can change it from database...

change this

player.addAdena("Sell", totalPrice, merchant, false);

to

player.addAdena("Sell", 1, merchant, false);

 

the best solution is to write for all items sold that cost is 1 adena in the window so you wont confuze players

Edited by Nightw0lf

  • Author
5 hours ago, Nightw0lf said:

change this

player.addAdena("Sell", totalPrice, merchant, false);

to

player.addAdena("Sell", 1, merchant, false);

 

the best solution is to write for all items sold that cost is 1 adena in the window so you wont confuze players

 

did not work :(

  • Author
6 hours ago, cyta5 said:

i think you can change it from database...

All my items are in XML.

13 hours ago, HARDECORE said:

long price = item.getReferencePrice() / 100;

change that to long price = 1;

29 minutes ago, L2 TokTil said:

change that to long price = 1;

:thinking:

Nightw0lf's answer is the correct one. You just need to edit the visual sell price too in order to work perfect.

 

SellList.java

-			writeD(item.getItem().getReferencePrice() / 2);
+			writeD(1);



RequestSellItem.java

-		player.addAdena("Sell", totalPrice, merchant, false);
+		player.addAdena("Sell", 1, merchant, false);

 

8 hours ago, Nightw0lf said:

:thinking:

when you change total price to 1, it worse because all item stackable example (11 piece item) is still 1 adena in total, if we want to antisipation adena population we can change price per item to this 

 

totalPrice = SafeMath.addAndCheck(totalPrice, SafeMath.mulAndCheck((item.getReferencePrice() / "your rate setting"), count) / 2); <= this code from my pack so maybe diff from another pack

or item.getReferencePrice(), count)/ "your rate setting"

 

*"your rate setting" = like item drop rate

so all item still have uniqe price not 1 adena,

 

to antisipation player to make trash in every town floor <= still can be anticipation to make all item drop by player destroy by xx sec like drop by monster

 

#Still newbee, correct me if im wrong

15 hours ago, L2 TokTil said:

when you change total price to 1, it worse because all item stackable example (11 piece item) is still 1 adena in total, if we want to antisipation adena population we can change price per item to this 

 

totalPrice = SafeMath.addAndCheck(totalPrice, SafeMath.mulAndCheck((item.getReferencePrice() / "your rate setting"), count) / 2); <= this code from my pack so maybe diff from another pack

or item.getReferencePrice(), count)/ "your rate setting"

 

*"your rate setting" = like item drop rate

so all item still have uniqe price not 1 adena,

 

to antisipation player to make trash in every town floor <= still can be anticipation to make all item drop by player destroy by xx sec like drop by monster

 

#Still newbee, correct me if im wrong

 

On 11/20/2019 at 8:46 AM, Nightw0lf said:

change this

player.addAdena("Sell", totalPrice, merchant, false);

to

player.addAdena("Sell", 1, merchant, false);

 

the best solution is to write for all items sold that cost is 1 adena in the window so you wont confuze players

 

  • Author
On 11/20/2019 at 1:29 PM, melron said:

Nightw0lf's answer is the correct one. You just need to edit the visual sell price too in order to work perfect.

 


SellList.java

-			writeD(item.getItem().getReferencePrice() / 2);
+			writeD(1);



RequestSellItem.java

-		player.addAdena("Sell", totalPrice, merchant, false);
+		player.addAdena("Sell", 1, merchant, false);

 

 

Hello. first of all thank you so much for helping me. 
In my SellList.java there is no such line that you have replaced. take a look look at the print.

 

x9b3Tvv.png

have this in SellList.java 

writeQ(item.getItem().getReferencePrice() / 2);

change it 

writeQ(1);

 

 

Edited by tazerman2

  • Author

all right. but can you show for the player that will be sold for 1 adena? why the modification works. but "player" will think it will sell for the price that is shown and is not.

 

see the video:

 

https://www.youtube.com/watch?v=kqQXrmU82ao

make post in pastebin selllist.java and requestsellitem.java for fix that you need

  • Author
2 hours ago, tazerman2 said:

make post in pastebin selllist.java and requestsellitem.java for fix that you need

 

ok

Here it is: https://pastebin.com/3RKSvWca

 

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.