PDA

View Full Version : Remove money from client


louis1016
02-27-2012, 02:20 PM
I'm trying to figure out how to remove a certain platinum amount from the client in the server code. It looks like m_pp.platinum is what i use to designate the clients platinum but its not recognizing m_pp when i compile. ( error message: 'm_pp' : undeclared identifier) I'm guessing I need to use a #include to another file but I cant figure out which one. Am I doing this wrong?

Derision
02-27-2012, 02:49 PM
m_pp is a private member of the Client class (see zone/client.h), so if you were trying to manipulate m_pp.platinum within a method/function of the Client class, it should work.

If you are trying to do this from within a method from another class, then you would need a pointer to a client object, then you could use

Client::TakeMoneyFromPP(uint64 copper, bool updateclient=false);


If you need further pointers, I would need to know where you are trying to insert this code into the existing source.

louis1016
02-27-2012, 03:39 PM
I'm trying to add a check and plat removal for spawning a bot, I just cant figure out how to use the above takemoneyfrompp to check for the clients pp amount and then to remove the pp. I want to set the price equal to the clients level. This is all within bot.cpp

Derision
02-27-2012, 03:50 PM
Well, if you want to do it where the #bot spawn command is processed in bot.cpp, you could add this around line 12424:

if(!c->HasMoney(c->GetLevel() * 1000))
{
c->Message(13, "You don't have enough money to spawn a bot.");
return;
}
c->TakeMoneyFromPP(c->GetLevel() * 1000, true);


That would go just before the existing line:

Bot* TempBot = LoadBot(botId, &TempErrorMessage);


At that point, the variable 'c' is a pointer to the client that is trying to spawn the bot.

Note that the HasMoney/TakeMoneyFromPP methods take copper as an argument, so 1000 is 1 platinum.

louis1016
02-27-2012, 03:52 PM
awesome, thanks a lot!

louis1016
02-27-2012, 04:45 PM
I'm trying to use updateclient=true but updateclient isnt recognized, any way I can update the client money after the bot has spawned?

EDIT - NM i figured it out, just saw you updated your posted code, thanks again