PDA

View Full Version : Making Daycare Optional


NobodysHero
01-12-2017, 10:12 AM
One of my players suggested it and I could see why they'd want the option. If they're looking to level their pet once or only to a certain level, then don't get to it once they've hit that level, it could be a problem. Or if they forget to freeze their pets.

So, I was hoping there would be someone awesome enough to doodle up a bit of code and tell me what to add/change in the database to make that happen.

If this code is already floating around out there, can someone aim me in that direction?

Thank you!

NobodysHero
http://i.imgur.com/jg3sMFC.png

Dinocanid
01-12-2017, 05:26 PM
After looking through the daycare's files, turns out there's actually a pretty short solution that I was able to come up with.

1. First I went into phpMyAdmin, owned_adoptables, and added a new column like this:

Name: exclude
Type: VARCHAR
Length: 3
Default: (As Defined) no
Collation: latin1_swedish_ci
Check the null box

2. Now go to class_daycare.php and change line 36 to this (assuming no prior edits were made):
if(is_numeric($this->settings->level)) $conditions .= " and currentlevel <= '{$this->settings->level}' and exclude = 'no'";

Now the daycare won't include any pets that have "exclude" set to yes.

3. Now there's how to update it. This is where my brain started to fry. I'm unsure of this part since most people have their owned_adoptables.php set up differently than others (including myself). Here's one way of doing it:
*Create a new form with two radio buttons, one named "do exclude" and one named "do not exclude" (or something like that).
* Then create an if statement so that if the person selected do exclude, this line happens:
$mysidia->db->update("owned_adoptables", array("exclude" => 'yes', "username = '{$mysidia->user->username}'");

*Create a elseif statement so when the person chooses don't exclude, this line happens:
$mysidia->db->update("owned_adoptables", array("exclude" => 'no', "username = '{$mysidia->user->username}'");

-End guide-

I haven't tested the part where users change it themselves, since I have absolutely no idea how radio buttons work. I have tested the parts before it though, and it does work if you were to change the value manually through phpMyAdmin. Here's a mockup code of the different button conditions, but that's where my knowledge ends unfortunately. It won't work on it's own, but it can give you an idea of what you need to do:
if($mysidia->input->post("submit")){
$choice = $mysidia->input->post("exclude");
if($choice == "doexclude"){
$document->add(new Comment("This pet has been excluded from the pound."));
$mysidia->db->update("owned_adoptables", array("exclude" => 'yes', "aid = '{$adopt->getAdoptID()}'");
}
elseif($choice == "donotexclude"){
$document->add(new Comment("This pet will now be visible the pound."));
$mysidia->db->update("owned_adoptables", array("exclude" => 'no', "aid = '{$adopt->getAdoptID()}'");
}
return TRUE;}

NobodysHero
01-12-2017, 11:44 PM
I'll have to give this a try. Thanks!

Hall of Famer
01-13-2017, 02:03 PM
In Mysidia v1.4.0 and future releases, almost all features are optional, that you can turn on and off from admin control panel, even user registration. For current version v1.3.4, you will need to edit the source file to hide the daycare system.

NobodysHero
01-13-2017, 08:32 PM
I don't want to hide it, I want it so some people could opt into it, instead of all pets automatically going into it.

When I was on other sites (Neopets, Restreatu, etc) that had a similar feature, they were more user action than automation. A user would bring their pets to the day care, pay some currency to put them in, then they'd come back to their pet's stats being raised.

What Dino submitted was what I was looking for. About to try it now, though... >.> I've no idea how radios work either. XD Sooo... This should be interesting.