Jump to content

  •  

Bug Tracker Migration

June 3rd
Good news everyone! The staff has decided that it is time to slowly kill off this Bug Tracker. We will begin the process of slowly migrating from this Bug Tracker over to our Github Issues which can be found here: https://github.com/HerculesWS/Hercules/issues

Over the next couple of days, I will be closing off any opportunity to create new reports. However, I still will keep the opportunity to reply to existing Bug Reports. Doing this will allow us to slowly fix any bug reports we have listed here so that we can easily migrate over to our Issue Tracker.

Update - June 7th 2015: Creating new bug posts has been disabled. Please use our https://github.com/HerculesWS/Hercules/issues tracker to post bugs. Users are still able to reply to existing bug posts.

- Administration

Issue Information

  • #008209

  • 0 - None Assigned

  • Working as Intended

Issue Confirmations

  • Yes (0)No (0)
Photo

rent item bug

Posted by N e s s on 21 May 2014 - 12:50 PM

example:

1. any card (rent item)
2. put card in in armor example tao gunka card (rent item)
3. use card remover
4. then poof expiration day of the card is gone

hmm..at the first place rent items should not have slot right? cause compounded cards will be lost when expired,...

:meow:

changed status to: New

hmm..at the first place rent items should not have slot right? cause compounded cards will be lost when expired,...

:meow:


I think, he meant , he rented a Card and compounded and uncompounded before expiration.

yes sir malufett that's what i meant :) sorry for not explaining it thoroughly :)

Edited by N e s s, 21 May 2014 - 05:17 PM.


another thing sir even if you did not uncompound the card before it expires. the card will also be in permanent status :)

Cards are not meant to be rental. Putting it into an equipment piece removes the card item itself (along with rental time) and simply sets card id in the equipment item. Decarding equipment creates a new card item (non-rental, obviously). If you want a "rental card" mechanic on your server (retaining the rental data even after being compounded into equipment, and disappearing from an equipment after expiration, you'll need to modify your source for that.

Also, not a script issue.

You can add a check to the decarder to prevent this. Same goes for the item signer btw

	if(getequipisidentify(@part)) goto L_CHECK2;

L_CHECK2:
	if (getequipexpiretick(@part)) {
            mes "Sorry. I don't sign rental items.";
            emotion e_sry;
            close;
        }

Edited by Ridley, 04 July 2014 - 09:35 PM.


That only checks the equipment itself for being rented; The problem here is that rental cards inserted into items are no longer "rental" in the meaning of the word.

Regarding the post of N e s s, the problem is the rental item (card or equip) will become a regular/permanent one if you decard (or sign) it.
The check prohibits to do this so it would solve the problem.

Edit: okay sorry now i see your point for checking the rental status of the card :|

Edited by Ridley, 05 July 2014 - 06:38 AM.


changed status to: Working as Intended

Closing this, since it's not really a bug in Hercules, but rather an incomplete implementation of custom code. In Hercules it is not possible to preserve the rental expiration time of cards once they're compounded (such feature doesn't exist in official servers), and it would be extremely wasteful in terms of resources if we were to implement it.

If you want to have such feature, the steps you need to go through are roughly (on top of my mind, I might be forgetting parts here):

- Modify struct item to include four extra expiration fields, one for each card slot.
- Modify the inventory, cart_inventory, storage, guild_storage, mail, auction, picklog tables to add the above four fields.
- Modify all code that creates, saves, loads or otherwise modifies items, to be aware of (and preserve) those fields.
- Modify all code related to rental item expiration, to also consider the newly added fields, if you want expired cards to actually disappear even when they're compounded to an item.