Mysidia Adoptables Support Forum

Mysidia Adoptables Support Forum (http://www.mysidiaadoptables.com/forum/index.php)
-   Mys v1.3.x Mods (http://www.mysidiaadoptables.com/forum/forumdisplay.php?f=42)
-   -   Mys v1.3.3 Personality System (http://www.mysidiaadoptables.com/forum/showthread.php?t=4579)

Hwona 07-02-2014 05:11 PM

Personality System
 
Please save back ups before using this modification!

How to make a random-generating personality system


1. Go to the "owned_adoptables" table in your database(PHPMyadmin). Click the "structure" tab at the top of the page. When it brings you to the next page, scroll down until you see this:
http://i1290.photobucket.com/albums/...pse6034c19.png
Press "Go".
You'll be brought to this:
http://i1290.photobucket.com/albums/...ps5c812c74.png
Set the values to match the example above and press "Save".

2. Go to the "adopt.php" file and find this:
$gender = $adopt->getGender();
Under that, put:
PHP Code:

 $personalities = array('personality1''personality2''personality3');
           
shuffle($personalities);
foreach (
$personalities as $personality) {
    
$adoptablepersonality "$personality";


Find this:
PHP Code:

$mysidia->db->insert("owned_adoptables", array("aid" => NULL"type" => $adopt->getType(), "name" => $name"owner" => $mysidia->user->username"currentlevel" => 0"totalclicks" => 0"code" => $code"imageurl" => NULL"usealternates" => $alts"tradestatus" => 'fortrade'"isfrozen" => 'no'"gender" => $gender"lastbred" => 0)); 

Replace with:
PHP Code:

$mysidia->db->insert("owned_adoptables", array("aid" => NULL"type" => $adopt->getType(), "name" => $name"owner" => $mysidia->user->username"currentlevel" => 0"totalclicks" => 0"code" => $code"imageurl" => NULL"usealternates" => $alts"tradestatus" => 'fortrade'"isfrozen" => 'no'"personality" => $adoptablepersonality"gender" => $gender"lastbred" => 0)); 

3. Go to the "breeding.php" file and find this:
$offspringID = $mysidia->db->select("owned_adoptables", array("aid"), "1 ORDER BY aid DESC LIMIT 1")->fetchColumn() - $num + 1;
Under that, put:
PHP Code:

 $personalities = array('personality1''personality2''personality3');
           
shuffle($personalities);
foreach (
$personalities as $personality) {
    
$adoptablepersonality "$personality";


Under that, put:
PHP Code:

 $mysidia->db->update("owned_adoptables",array("personality" => $adoptablepersonality),"aid = $offspringID"); 

4. Go to the "shop.php" file and find this:
$adoptid = $mysidia->db->select("owned_adoptables", array("aid"), "1 ORDER BY aid DESC LIMIT 1")->fetchColumn() - $num + 1;
Under that, add:
PHP Code:

 $personalities = array('personality1''personality2''personality3');
           
shuffle($personalities);
foreach (
$personalities as $personality) {
    
$adoptablepersonality "$personality";


Under that, put:
PHP Code:

$mysidia->db->update("owned_adoptables",array("personality" => $adoptablepersonality),"aid = $adoptid"); 

5. Go to your "class_promocode.php" file(in the "classes" folder) and find this(in the "execute" function):
switch($this->type){
case "Adopt":
Below that, add:
PHP Code:

$personalities = array('personality1''personality2''personality3');
           
shuffle($personalities);
foreach (
$personalities as $personality) {
    
$adoptablepersonality "$personality";


Find this:
PHP Code:

 $mysidia->db->insert("owned_adoptables", array("aid" => NULL"type" => $this->reward"name" => $this->reward"owner" => $this->user"currentlevel" => 0"totalclicks" => 0"code" => $code
                                                           
"imageurl" => NULL"usealternates" => 'no'"tradestatus" => 'fortrade'"isfrozen" => 'no'"gender" => $genders[$rand], "lastbred" => 0)); 

Replace with:
PHP Code:

 $mysidia->db->insert("owned_adoptables", array("aid" => NULL"type" => $this->reward"name" => $this->reward"owner" => $this->user"currentlevel" => 0"totalclicks" => 0"code" => $code
                                                           
"imageurl" => NULL"usealternates" => 'no'"tradestatus" => 'fortrade'"isfrozen" => 'no'"gender" => $genders[$rand], "lastbred" => 0"personality" => $adoptablepersonality, )); 

6. Go back to the "adopt.php" file.
Under this:
Add:
$mysidia->db->update("owned_adoptables",array("personality" =>"personality4"),"aid = $adoptid");
Go to your site's ACP and create a free adopt-page adopt. Adopt that pet once. Delete the adopted pet and the species. Then, go back to the "adopt.php" file and delete the code you just added


Done!
If you want to display the personality on the levelup page:

Hwona 07-02-2014 05:11 PM

Displaying Personality On Levelup Page
 
This post will cover how to display an adoptable's personality on its click page


1. Go to the "class_ownedadoptable.php" file(inside the "classes" folder). There, at the top, there's a bunch of "protected" variables. Add this below them:
protected $adoptablepersonality;
Add this function to the list of functions below:
public function getAdoptPersonality(){
return $this->personality;
}

2. Got to the "levelup.php" file. On line 29, there should be something like this:
$ip = secure($_SERVER['REMOTE_ADDR']);
Under that with this:
$adoptablepersonality = $this->adopt->getAdoptPersonality();
On line 33, there's a piece of code like this:
PHP Code:

$message = ($mysidia->user instanceof Member)?$mysidia->lang->already_leveled_member:$mysidia->lang->already_leveled_guest

Replace that with:
PHP Code:

$message "<div id='personality'>Personality: {$adoptablepersonality}</div>";
$message $message .= (($mysidia->user instanceof Member)?$mysidia->lang->already_leveled_member:$mysidia->lang->already_leveled_guest); 

Replace lines 38 and 39, which should contain something like this:
PHP Code:

$document->setTitle($mysidia->lang->frozen_title);
            
$document->addLangvar($mysidia->lang->frozen); 

With:
PHP Code:

    $message $message .= "
<div id='stats'>
Personality: 
{$adoptablepersonality}
</div><br>
We're sorry, but you cannot add clicks to this adoptable at this time because its owner has chosen to freeze it.  Frozen adoptables do not accept new clicks and do not level up.  Thanks anyway for the click though, but the owner of this adoptable wants to keep this adoptable young so it will not be counted."
;
            
$document->setTitle($mysidia->lang->frozen_title);
            
$document->addLangvar($message); 

On line 41, there should be:
else{
Under that, put:
PHP Code:

$message $message .= "<br><text align ='center'><div id='clickpagelink'><a href='{$mysidia->path->getAbsolute()}levelup/click/{$this->adopt->getAdoptID()}'>Click here to visit {$adoptablename}</a><br></div>"

On line 67, there should be something like this:
$document->add($summary);
Under that, put:
$document->addLangvar($message);

I plan on editing the code to allow different personalities to have different chances of being selected. :3

Hwona 07-02-2014 05:12 PM

Reserved for future

Missy Master 07-02-2014 07:10 PM

Oh my this is exciting!! Really cool you made this!! :)

Hall of Famer 07-03-2014 02:18 AM

Looks interesting. ^^ One quick suggestion though, why not uploaded all files that you've edited for this mods for new users to download and use quickly? I always provide that as an option for users running fresh installation sites.

Hwona 07-03-2014 09:27 AM

^Sure! It'll be a lot of files to upload, but I can make it work. :3 Do you know how to insert content into the levelup.php file? From what I know, the two recent mods I made are compatible with the newest version other than the fact that displaying the stats on the click page can't be done the same way... do you know how to do this?

Kyttias 07-07-2014 02:39 AM

I've managed to get it to work somewhat! But because I'm using four stats, instead of this in levelup.php:
Code:

$message = "<div id='personality'>Personality: {$adoptablepersonality}</div>";
I'm using just:
Code:

$message = "<div id='personality'>Personality: {$this->adopt->personality}</div>";
(For example, anyway.) Which means I'm not even calling back to the edits made in class_ownedadoptable.php.

I really like how on your site, once you reload the page, rather than throwing an error that you've already levelled up the adoptable, it shows a nice profile page for it. How are you getting the species name to show? I can't seem to find where that variable is stored.

Hwona 07-07-2014 09:17 AM

^Great! Wait, aren't you using v.1.3.4? How'd you get it to work there? The species thing should be there...

Kyttias 07-07-2014 06:07 PM

Yeah, I've got 1.3.4, and... Well, I got it to display, but... all that's on that page is an error message that the pet has already been fed... and now something that displays it's personality. I'll have to build an entire page for it to replace the 'already been fed' message, I guess. I wish it was cool like yours and showed a whole profile. I'm not sure what variable holds the species name, though. I can't seem to find it. I thought it was 'type' but that didn't manage to write anything.

On your Spring theme where you add in the mod for 1.3.3 levelup.php page (which I don't want to copy over to 1.3.4 and accidentally break everything somehow, for obvious reasons - but I can still glean enough information from it to replicate what I need) you don't seem to have the species on the list of things displayed, but, on your actual site, you do. o3o~?

Hwona 07-07-2014 06:51 PM

Yeah, don't copy anything over to v.1.3.4 - I've no experience working with it, and right now, I'm still trying to figure out how to display stuff on the click page. And yes, the "type" variable is the thing that gets the species...

Actually, can you give me the link of one of your site's pets?


All times are GMT -5. The time now is 09:59 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.