Making Daycare Optional

Forum
Last Post
Threads / Messages

NobodysHero

Co-Owner of MystFell
Member
Joined
Nov 6, 2013
Messages
144
Points
0
Mysidian Dollar
12,988
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
jg3sMFC.png
 
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):
PHP:
if(is_numeric($this->settings->level)) $conditions .= " and currentlevel <= '{$this->settings->level}' and exclude = 'no'";

  Spoiler: Sidenote 
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:
PHP:
$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:
PHP:
$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:
PHP:
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;}
 
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.
 
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.
 

Similar threads

Users who are viewing this thread

  • Forum Contains New Posts
  • Forum Contains No New Posts

Forum statistics

Threads
4,277
Messages
33,118
Members
1,602
Latest member
BerrieMilk
BETA

Latest Threads

Latest Posts

Top