Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Welcome to our site

Take a moment to join our board

Sign in to follow this  
Nyorai

[Proof of Concept] Item Renting

Recommended Posts

Throughout my experience on Conquer and on the private server scene, I believe there are 2 main problems that have never been really served with a proper solution:

  • Players not having a proper system in place that would allow them to safely lend their items to other players without having the risk of being scammed and see their items being stolen by people who they thought they could trust;
  • Players having an hard time starting over on a new server as they would have to pretty much start everything from zero without any characters or items;

Taking this into account, and considering a suggestion made a while ago by a member of our community at Conquer Origins I decided to get to work and try to come up with a system that could possibly solve both of these problems. Now, considering the fact that it's pretty much finalized and going through some final tests, I decided to share the progress as I believe it's something somewhat 'groundbreaking' in terms of what's normally done on Conquer servers. I honestly believe it not only solves both of the problems above but also many others and it also brings a breath of fresh air to what we've seen in the scene.

This being said and instead of writing a wall of text I'll simply leave you guys with this video, presenting the upcoming Item Renting system that's being released on Conquer Origins

 

  • Like 3

Share this post


Link to post
Share on other sites

Interesting, I like the concept. It kinda reminds me of Link Between Worlds. So, what happens if the player dies as a red/black title? Does the item still get dropped but now the other character has a rented item that gets returned after that amount of time? Or does the item stay on the killed character and the player who killed the red/black title doesn't get a reward for enacting justice? A player could theoretically abuse the system by renting to himself from a second character. That way, the gear is protected at all times. It's a small exploit, but a pretty powerful one if you're really into PVP. One way around that could be a penalty system where the items go immediately back to the seller but the player can no longer rent gear for a full week or longer. You'd also have to find a reward for the other player though, like being rewarded the bail money at the very least. Still kinda the short end of the stick though. 

Share this post


Link to post
Share on other sites
48 minutes ago, Spirited said:

Interesting, I like the concept. It kinda reminds me of Link Between Worlds. So, what happens if the player dies as a red/black title? Does the item still get dropped but now the other character has a rented item that gets returned after that amount of time? Or does the item stay on the killed character and the player who killed the red/black title doesn't get a reward for enacting justice? A player could theoretically abuse the system by renting to himself from a second character. That way, the gear is protected at all times. It's a small exploit, but a pretty powerful one if you're really into PVP. One way around that could be a penalty system where the items go immediately back to the seller but the player can no longer rent gear for a full week or longer. You'd also have to find a reward for the other player though, like being rewarded the bail money at the very least. Still kinda the short end of the stick though. 

The approach I'm taking on this actually already covers that. As it is, players won't be able to deal damage to other players if they're using any rented item (except for PK free maps) regardless of their PK mode so this way players won't be able to PK using other people's items. This being said, a player won't be capable of going redname using rented items and they also won't be able to wear rented items if they're redname.

Players who rent the items will also be able to change the item's level (it'll go back to its original level once his rent his due) and that actually leads me to probably one of the last things still left to decide.. Which is if the item should or shouldn't have the chance of being socketed if being upgraded by someone who rent it. I mean, it'd be an extremely pleasant surprise for the owner but kind of a bummer for the person who temporarily had it.

Share this post


Link to post
Share on other sites
2 minutes ago, Nyorai said:

The approach I'm taking on this actually already covers that. As it is, players won't be able to deal damage to other players if they're using any rented item (except for PK free maps) regardless of their PK mode so this way players won't be able to PK using other people's items. This being said, a player won't be capable of going redname using rented items and they also won't be able to wear rented items if they're redname.

Players who rent the items will also be able to change the item's level (it'll go back to its original level once his rent his due) and that actually leads me to probably one of the last things still left to decide.. Which is if the item should or shouldn't have the chance of being socketed if being upgraded by someone who rent it. I mean, it'd be an extremely pleasant surprise for the owner but kind of a bummer for the person who temporarily had it.

I like how you solved the first problem; that totally makes sense. I'm not sure about the level part though. In the same case of a player renting equipment to himself, that could mean an easier/cheatier path to getting high level gear without any of the work involved in upgrading it. Also, does that mean the gear only works on Free-PK maps? What happens if you're in a guild and an enemy guild attacks you while you're hunting in bird island?

Share this post


Link to post
Share on other sites
1 minute ago, Spirited said:

I like how you solved the first problem; that totally makes sense. I'm not sure about the level part though. In the same case of a player renting equipment to himself, that could mean an easier/cheatier path to getting high level gear without any of the work involved in upgrading it. Also, does that mean the gear only works on Free-PK maps? What happens if you're in a guild and an enemy guild attacks you while you're hunting in bird island?

Oh no, I mean, players will be able to change an item's level but they'll still have to spend meteors to do so. Your reply actually gave me the answer to the question I made by the way, these items cannot roll the chance of being socketed when upgraded otherwise people could simply bypass the fact that they have to reborn characters in order to spam items for 2 sockets.

As for the items, they will only work on Free-PK maps against other players but they'll work against monsters, super gems will grant their attributes as well and so on. If you're in a guild and an enemy guild attacks you you won't be able to fight back if you're using a rented item. I have thought about letting the items be used in these cases where the opponent is flashing, I might change it tho.

Sorry for the short and possibly vague answers, it's extremely late (well, early in the morning). I'll make sure to give a few more details on the system tomorrow =] 

  • Like 1

Share this post


Link to post
Share on other sites

That's really cool! I'm really curious as to how you accomplished this, creating a completely custom UI inside the client like that. If you don't mind explaining, of course.

Share this post


Link to post
Share on other sites
13 hours ago, Smaehtin said:

That's really cool! I'm really curious as to how you accomplished this, creating a completely custom UI inside the client like that. If you don't mind explaining, of course.

If I am correct, there is a hook that loads a (custom) library to draw interfaces / load a browser (https://bitbucket.org/chromiumembedded/cef/src/master/).

On higher patches (5517+), there is a small window meant for (mobile) purchases directly through the client. I think this was never implemented in the English version. The window is still there however, can be triggered through data packets like the GUI interface. This window loads a web browser inside the client (there is an ini file that specifies what URL). I believe Internet Explorer is loaded. 

With some simple hooking I believe this can be 'abused' to load what you want and afterwards it's just handling the communication with the server.

  • Like 1

Share this post


Link to post
Share on other sites
9 hours ago, Omicron said:

If I am correct, there is a hook that loads a (custom) library to draw interfaces / load a browser (https://bitbucket.org/chromiumembedded/cef/src/master/).

On higher patches (5517+), there is a small window meant for (mobile) purchases directly through the client. I think this was never implemented in the English version. The window is still there however, can be triggered through data packets like the GUI interface. This window loads a web browser inside the client (there is an ini file that specifies what URL). I believe Internet Explorer is loaded. 

With some simple hooking I believe this can be 'abused' to load what you want and afterwards it's just handling the communication with the server.

I don't get how that works. The client in the video seems to interact with this "webview" directly, like drag-and-dropping of items from the inventory into the window. It seems to be much more complicated than just an embedded webview, or maybe I am missing something?

Share this post


Link to post
Share on other sites

I am also curious about how this was embedded so nicely. Regardless if you want to say or not, it is very good work. It is nice to see some creativity in the community!

Share this post


Link to post
Share on other sites

It looks very similar to the auction window so they may have modified that window, Regardless looks very good.

Share this post


Link to post
Share on other sites
12 hours ago, Diab said:

It looks very similar to the auction window so they may have modified that window, Regardless looks very good.

There is an auction window? 

Share this post


Link to post
Share on other sites

Yes, you can find it under data/interface/auction on relatively newer clients. don't know when exactly they were added to the client but I believe they were never actually released.

Share this post


Link to post
Share on other sites
4 hours ago, Snow said:

There is an auction window? 

The structures for it are also available, First I've noticed it was after patch 5838.

Share this post


Link to post
Share on other sites
On 5/12/2020 at 8:02 PM, Moh said:

The structures for it are also available, First I've noticed it was after patch 5838.

This has been implemented in the client ~5600, I believe before that patch. It can be implemented and might work except for a few interface bugs.

Share this post


Link to post
Share on other sites
1 hour ago, Vendramini said:

This has been implemented in the client ~5600, I believe before that patch. It can be implemented and might work except for a few interface bugs.

Good to know :)

Share this post


Link to post
Share on other sites
On 5/12/2020 at 8:02 AM, Diab said:

It looks very similar to the auction window so they may have modified that window, Regardless looks very good.

Ahhhhh, you're right, it looks exactly like the auction window. That's probably it. Change some UI texts and use the same auction house packets that are already implemented in the client. Pretty clever.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By CptSky
      I originally shown the POC in mid-2014, but never released the code, nor saved it on my side. As requested, I took time to redo the POC using unreleased code I had. The messages are based on COPS v7 structure, but modernized for C++17. The crypto classes are based on unreleased and cleaned C++ implementations. They are modernized too and the TQCipher implements SSE2/AVX2 in a single implementation (relatively cleanly). I took the time to document the hooking process too. Hopefully it will help people!
      Small note, the bootstrap executable which launch the game and inject the server now has 3 injection methods... My original code was not working and I thought it was related to new Windows 10 security features, so I wrote other injection methods. These new methods weren't working either and I realized I had a typo in the DLL project name, so the DLL name was not right on disk... Well, bonus for you, the bootstrap now have 3 documented ways to inject a DLL.
      As always, feel free to reuse the code. It is released under a BSD 3-clauses license, so just give credits when due.
      https://gitlab.com/conquer-online/servers/cops-serverless
       

×

Important Information

By using this site, you agree to our Terms of Use.