Link Unit Below Tabs

Spacing

How to Sell Unsellable Objects




Do you regret placing one (or several) of those many buildings that Zynga offered you?  Even worse, some of them are unsellable.  Unsellable buildings and other objects include:
  • Parliament
  • World Embassy
  • Famine Relief Farm
  • War Room
  • Titan Lab
  • Strike Teams HQ
  • Defense Towers
  • Treasure Vault
  • Heavenly Ruler's Palace
  • Super Ore Mine
  • Energy Cradle
  • Surveillance Tower
  • Alcatraz
  • Missile Launch Station
  • Element Z Rig given to you by Zynga (the ones you build are sellable)
  • Trees, shrubs, rocks
  • Depots that cannot be sold because they contain invalid items

One way to get rid of them is to contact customer service and ask them to remove the offending item for you.  Now, you may not want to go to that trouble for whatever reason.  Here's another way to do it.

I assume that you are familiar with and know how to use a program called Charles, a popular web debugging proxy application.  We will use Charles to transform the unsellable object to a sellable one and then sell that object.  Technically, the title of this article isn't correct.

I assume you are using the free trial version of Charles, which has the "Find" feature disabled.  If you have the full version of Charles, you can shorten the process by using "Find" to search for the item you want to get rid of instead of looking for it through its item id.  You will need to know the itemName of the object you want to get rid of.  In this case, you can skip step 1 and move on to the middle of step 2, keeping in mind to use the "Find" feature.

(Yet another way to get rid of unsellable objects is to use a certain bot, which I won't discuss in this article.)

Step 1

The first step is to get the item id of the building you want to get rid of.  For example, let's say it's the Heavenly Ruler's Palace.

Have the game and Charles open.  Turn breakpoints on for the E&A game server address "http://fb-client-zc.empire.zynga.com" so that requests between the client and game server will be intercepted and halted by Charles.  This gives you a chance to look at or modify requests before they're passed through.

Now, move the Palace from one spot to another (or to the same spot).  Go to Charles and look for the AMF request that looks like the one in the following image.  It will be one of a batch of requests being sent from the client to the server, so the "move" request might not be the first Object ("[0]") in the array of arguments as it is in the image below.  Once you find this request, you can turn breakpoints off temporarily so that new requests don't refresh your screen.




The client sends this "move" request to the game server to tell it that an object in the game world is to be moved.  Notice the function being called is "WorldService.performAction" and the action parameter is "move."  The first object argument contains the object being moved.  Verify that the itemName is "Palace" and record the id for the next step.  Here, the id is 2705 but yours will likely be different.

There's no need to modify this request.

Step 2

Refresh the game and keep executing requests.  Right before you get the game load screen or just at the beginning of it, turn on breakpoints again if you had turned them off temporarily.

Look for the AMF request that looks like the one in the following image.  Once you find it, you can turn off breakpoints.  Here, the request is being sent from the server to the client, telling the client how to populate the game world.  The "objects" subtree contains all the objects in your game world.  There can be hundreds or even thousands of objects.





You want to look through this list for the Heavenly Ruler's Palace.  The numbers 0-3 that you see (and many more that you can't see) in the image above just number the objects in the array; they don't identify them.  You need to open up each numbered subtree to check what the object is.  These id's are not consecutive and don't correspond to the array indices.  For example, in the image below, the three consecutive id's 2440, 2705, and 2726 are ordered but not consecutive. 


(If you have the full version of Charles, you should have skipped to here and used the "Find" feature to search for "Palace".  To get rid of other objects, you need to know their itemNames.)

However, you can use the fact that the objects are ordered by id to look for the id you found in step one for the Heavenly Ruler's Palace.  Confirm that you found the correct id by verifying that it corresponds to the correct itemName.  Here, id 2705 correctly corresponds to itemName "Palace."





Step 3

What we want to do is change the unsellable Palace to some other building that is sellable.  You'll have to know the proper itemName of the object that you want to transform the Palace into.  One possiblity is an Oil Well III, whose itemName is "Oil Derrick 3".

Double-click on "Palace" and change it to "Oil Derrick 3".  This tells the game client to load an Oil Well III instead of a Heavenly Ruler's Palace.  Now execute all requests that were caught by Charles.  The game should now finish loading and you should see an Oil Well III where your Palace once was.  Sell it.  If you refresh your game, you should find that your Palace has permanently disappeared.


9 comments:

  1. Hi.
    I make you say.defense tower is changing oil well 3.So here okey.
    I buy oil well 3 and refreshing the game.but defense tower come back.why ?

    ReplyDelete
  2. You don't "buy" anything. You SELL the Oil Well III. Also, make sure breakpoints are OFF when you are selling so that the client can send that information to the server. Then to be safe, WAIT a minute (especially if you have a slow internet connection) so that the sell request can get to the server. Then refresh.

    Let me know if it works. Good luck!

    ReplyDelete
  3. sorry I write wrong no buy I sell :)

    I try again I report result.Thank you.

    ReplyDelete
  4. It is works !!! I sell defense tower 1 and 2 !

    ReplyDelete
  5. Yes it is works :) thank you sean.

    ReplyDelete
  6. hye..
    How about depot (containing both valid&invalid items)?
    is it all the legal units in that depot will permanently gone or still in inventory?
    i haven't try this because there are about 50 units in that depot&it has been ruin by a simple mistake :(

    ReplyDelete
  7. You should take as many items as you want to keep out of the depot first. I haven't actually tested this method on depots, but it should work.

    ReplyDelete
  8. how about using Cheat Engine? can you tell it...

    ReplyDelete
  9. Added Energy Cradle to list of unsellable objects.

    ReplyDelete