market npc(Trade house)

glemor123

New member
Messages
287
Points
0
I've been looking into different server, I noticed that their vending area is quite overcrowded. What if there will be a market npc like in cabal where they will put there item for sale in the market npc then wait till the item is bought. then retrieve the zeny. the npc called in cabal is trade house i guess? what if ragnarok will also have that one. then it will be less crowded and be more convenient if all items sold are in 1 npc only.
default_smile.png
prizes are arranged. according to item name.

 
something like ragnarok auction system?

 
AFAIK ragnarok's auction system accepts all item types.
it is still can be used now days ? even on battle conf stated it has been fixed on clients 2013-05-15 onwards however. but i can't make it work like it used to be

 
Last edited by a moderator:
I was using it earlier this week. and it seemed fine. I think i'm using client version 2013-08-07. But i jump around from that and 2014-01-XX (cant remember the EXACT one).

 
In CLIF.C find:

/// Request to add an item to the action (CZ_AUCTION_ADD_ITEM)./// 024c <index>.W <count>.Lvoid clif_parse_Auction_setitem(int fd, struct map_session_data *sd){ int idx = RFIFOW(fd,2) - 2; int amount = RFIFOL(fd,4); // Always 1 struct item_data *item; if( !battle_config.feature_auction ) return; if( sd->auction.amount > 0 ) sd->auction.amount = 0; if( idx < 0 || idx >= MAX_INVENTORY ) { ShowWarning("Character %s trying to set invalid item index in auctions.n", sd->status.name); return; } if( amount != 1 || amount > sd->status.inventory[idx].amount ) { // By client, amount is always set to 1. Maybe this is a future implementation. ShowWarning("Character %s trying to set invalid amount in auctions.n", sd->status.name); return; } if( (item = itemdb->exists(sd->status.inventory[idx].nameid)) != NULL && !(item->type == IT_ARMOR || item->type == IT_PETARMOR || item->type == IT_WEAPON || item->type == IT_CARD || item->type == IT_ETC) ) { // Consumable or pets are not allowed clif->auction_setitem(sd->fd, idx, true); return; } if( !pc_can_give_items(sd) || sd->status.inventory[idx].expire_time || !sd->status.inventory[idx].identify || !itemdb_canauction(&sd->status.inventory[idx],pc_get_group_level(sd)) || // Quest Item or something else (sd->status.inventory[idx].bound && !pc_can_give_bound_items(sd)) ) { clif->auction_setitem(sd->fd, idx, true); return; } sd->auction.index = idx; sd->auction.amount = amount; clif->auction_setitem(fd, idx + 2, false);}
Change this part:

if( (item = itemdb->exists(sd->status.inventory[idx].nameid)) != NULL && !(item->type == IT_ARMOR || item->type == IT_PETARMOR || item->type == IT_WEAPON || item->type == IT_CARD || item->type == IT_ETC) ) { // Consumable or pets are not allowed clif->auction_setitem(sd->fd, idx, true); return; }
INTO

clif->auction_setitem(sd->fd, idx, true); return;
This will allow you to post ALL type of items in the auction. Or SHOULD allow you to. Don't know how the client will act upon doing this, but I do know that I am able to put RedPotions in my auction house so yeah. ( I did not make these changes, I was already able to do it, don't know why D: ).

As always make a back-up copy of your src files before making these changes. And don't forget to recompile after making the changes.

*Note - This clif packet currently has amount set to 1 by default. Not sure if this can be changed as I currently can't test this. But keep in mind that placing a large stack of consumables may be reduced to just 1 while listed in the auction. This could cause a loss of items or it might just take 1 away. Would be a pain to have to list 100 Ygg berries 1by1.

 
Last edited by a moderator:
Hmm isn't it that newer clients already removed the auction house packets. starting 2013 clients if i'm correct, that's why it was not working properly anymore, just don't if you use older clients

 
Hmm isn't it that newer clients already removed the auction house packets. starting 2013 clients if i'm correct, that's why it was not working properly anymore, just don't if you use older clients
conf/battle/feature.conf

// Auction (Note 1)// Feature became unstable on clients 2012 onwards (exact date not known),

// it has been fixed on clients 2013-05-15 onwards however.

feature.auction: off
 
Hmm isn't it that newer clients already removed the auction house packets. starting 2013 clients if i'm correct, that's why it was not working properly anymore, just don't if you use older clients
conf/battle/feature.conf

> 

// Auction (Note 1)// Feature became unstable on clients 2012 onwards (exact date not known),

// it has been fixed on clients 2013-05-15 onwards however.

feature.auction: off
Ohh, haven't seen that conf file in a while..
default_biggrin.png
thanks for pointing it out,
default_smile.png


 
Back
Top