Mysidia Adoptables Support Forum  

Home Community Mys-Script Creative Off-Topic
Go Back   Mysidia Adoptables Support Forum > Mysidia Adoptables > Addons and Modifications > Mys v1.2.x Mods

Notices

Reply
 
Thread Tools Display Modes
  #1  
Old 04-02-2011, 02:46 AM
Kaeliah's Avatar
Kaeliah Kaeliah is offline
Premium Member
 
Join Date: Sep 2010
Location: Pennsylvania, United States
Posts: 485
Gender: Female
Credits: 23,043
Kaeliah will become famous soon enough
Send a message via AIM to Kaeliah Send a message via MSN to Kaeliah
Default Multiple Alternate Image Plugin [by Kae]

Multiple Alternate Image
By Kaeliah


Modification TOS

I felt very bad for going on hiatus so to make up for it I decided to release this publicly instead of for premium only. Please note that this is a complex script and you should know at least a little PHP before attempting installation. That said, I tried to make it as simply as possible.

Step 1: Open the functions.php, levelup.php & doadopt.php files.
NOTE: Any page that inserts a row into the owned_adoptables table will need an extra '', added after imageurl.

Find the two functions 'getaltstatus' and 'getcurrentimage' in functions.php. They should be one after the other. Replace those two functions with the code below:

PHP Code:
function getaltstatus($parentid$childid$childlevel) {

    
// This function determines if we will use alternate images...
    
$alt "Cannot find adopt with given parent id.";

    
// First we need to see if this adoptable type has alternate images enabled...
    
$query "SELECT * FROM ".$prefix."adoptables WHERE id='".$parentid."'";
    
$result mysql_query($query);
    
$num mysql_num_rows($result);
    
$alternates=@mysql_result($result$i,"alternates");
    
    
// Let's see if the level we are on is the level that requires alternates
    
if($alternates == "enabled") {
        
// Alternates for adoptable type are enabled, next check to see if this adopt is already using an alternate.
        
$query "SELECT * FROM ".$prefix."owned_adoptables WHERE aid='".$childid."'";
        
$result mysql_query($query);
        
$num mysql_num_rows($result);
        
$usealt=@mysql_result($result$i,"usealternates");
        
$currentimage=@mysql_result($result$i,"altimage");
        if(
$usealt == "no"){
        
// Alternates are not currently being used, next check for alternate image w/ specified entry level.
        
$query "SELECT * FROM ".$prefix."alternates WHERE entry='".$childlevel."' AND adoptid='".$parentid."'";
        
$result runquery($query);
        
        while(
$row mysql_fetch_array($result)){
        
$method=$row['method'];
        
$data=$row['data'];
        
$newurl=$row['alturl'];
        
// check what kind of method we're using to choose an alternate.
        
if($method == "random"){
        
$chance rand(1$data);
        if(
$chance == 1){
            
$alt $newurl;
        }
        else{
            
$alt "The random finder did not pick 1.";
        }
        
        }
        else{
            
$alt "Not finding method random...";
        }
        
        
$i++;
        }
        
        
        }
        else if(
$usealt == "yes"){
        
// This adopt is already using an alternate, so let's get a path.
        
$query "SELECT * FROM ".$prefix."alternates WHERE alturl='".$currentimage."' AND adoptid='".$parentid."'";
        
$result mysql_query($query);
        
$path=@mysql_result($result$i,"path");
        
$subpath=@mysql_result($result$i,"subpath");
        
        if(
$subpath != 0){// check for a subpath.
        
$query "SELECT COUNT(*) FROM ".$prefix."alternates WHERE subpath='".$subpath."' AND path='".$path."' AND replacedlevel='".$childlevel."' AND adoptid='".$parentid."'";
        
$result mysql_query($query);
        
$num mysql_fetch_array($result);
        }
        else if(
$path != 0){ // no subpath, so check for a path.
        
$query "SELECT COUNT(*) FROM ".$prefix."alternates WHERE path='".$path."' AND replacedlevel='".$childlevel."' AND adoptid='".$parentid."'";
        
$result mysql_query($query);
        
$num mysql_fetch_array($result);
        }
        
        if(
$num[0] > 1){
        
// more than 1 path was found, so let's run through subpaths. 
        
$i 0;
        while(
$i $num[0]){
        
$method=@mysql_result($result$i,"method");
        
$data=@mysql_result($result$i,"data");
        
$newurl=@mysql_result($result$i,"alturl");
        
// check what kind of method we're using to choose a subpath.
        
if($method == "random"){
        
$chance rand(1$data);
        if(
$chance == 1){
            
$alt $newurl;
        }
        else{
            
$alt "none";
        }
        }
        else{
            
$alt "none";
        }
        
        
$i++;
        }
        
// In order for paths to work, we HAVE to have a subpath picked. Since a loop until one is picked would be tedius, we'll just randomly pick one.
        
if($alt == "none"){
        
$query "SELECT * FROM ".$prefix."alternates WHERE path='".$path."' AND replacedlevel='".$childlevel."' ORDER BY RAND() LIMIT 1 ";
        
$result mysql_query($query);
        
$newurl=@mysql_result($result$i,"alturl");
        
$alt $alturl;
        }
        
        } 
// end subpaths
        
else{
        
// No path was found, so now we just need to pick an alternate. 
        
        
$query "SELECT * FROM ".$prefix."alternates WHERE adoptid='".$parentid."' AND replacedlevel = '".$childlevel."'";
        
$result mysql_query($query);
        
$num mysql_fetch_array($result);
        
        
$method=@mysql_result($result$i,"method");
        
$data=@mysql_result($result$i,"data");
        
$newurl=@mysql_result($result$i,"alturl");
        
        if(
$method == "random"){
        
$chance rand(1$data);
        if(
$chance == 1){
            
$alt $newurl;
        }
        else{
            
$alt "none";
        }
        }
        else{
            
$alt "none";
        }
        
        } 
// End No Subpaths
        
        
        
// end alternates already enabled.
    
// end alternates enabled
    
else{
    
$alt "alternates are reading disabled.";
    }
    return 
$alt;
}

function 
getcurrentimage($aid) {

    
// This function determines which image we should use for a given adoptable...
    
$image "";

    
// First we select the adoptable from the database and get some basic information...
    
$query "SELECT * FROM ".$prefix."owned_adoptables WHERE aid='".$aid."'";
    
$result mysql_query($query);

    
$currentimage=@mysql_result($result0,"altimage"); 
    
$imageurl=@mysql_result($result0,"imageurl");

    if(
$currentimage == ""){
    
// if the currentimage is blank, we're not using an alternate so grab the primary image.
    
$image $imageurl;
    }
    else{
    
$image $currentimage;
    }
    if(
$image == ""){
    
// For some reason, both primary and current images are blank, so let's do one more check.
    
$currentlevel=@mysql_result($result0,"currentlevel");
    
$type=@mysql_result($result0,"type");
    
    if(
$currentlevel != 0){
    
$query "SELECT * FROM ".$prefix."levels WHERE adoptiename = '".$type."' AND thisislevel = '".$currentlevel."'";
    
$result mysql_query($query);
    
    
$primaryimage=@mysql_result($result0,"primaryimage");
    
    
mysql_query("UPDATE ".$prefix."owned_adoptables WHERE aid = '".$aid."' SET imageurl = '".$primaryimage."'");
    
$image $primaryimage;
    
    }
    else{
    
$query "SELECT * FROM ".$prefix."adoptables WHERE type = '".$type."'";
    
$result mysql_query($query);
    
$eggimage=@mysql_result($result0,"eggimage");
    
    
mysql_query("UPDATE ".$prefix."owned_adoptables WHERE aid = '".$aid."' SET imageurl = '".$eggimage."'");
    
$image $eggimage;
    
    }
    if(
$image == ""){
    
// both are definitely blank... show error.
    
$image "http://www.".$GLOBALS['domain']."".$GLOBALS['scriptpath']."/templates/icons/delete.gif";
    }
    }
    return 
$image;


Find in levelup.php at about line 140:

PHP Code:
    $parentid converttypetoparentid($type); // Get the ID of the parent type adoptable
    
$altstatus getaltstatus($parentid$id$nextlevel); // Check if we are using alternate images or not...

    
if($altstatus == "yes"){

    
// We are enabling alternate images for this adoptable...

    
$query "UPDATE ".$prefix."owned_adoptables SET usealternates='yes' WHERE aid='".$id."'";
    
runquery($query);


    } 
And replace it with this:

PHP Code:
    $parentid converttypetoparentid($type); // Get the ID of the parent type adoptable
    
$altstatus getaltstatus($parentid$id$nextlevel); // Check if we are using alternate images or not...

    
if($altstatus != "none"){

    
// We are enabling alternate images for this adoptable...

    
$query "UPDATE ".$prefix."owned_adoptables SET usealternates='yes',altimage='".$altstatus."' WHERE aid='".$id."'";
    
mysql_query($query);


    } 
Lastly, open up doadopt.php and any other files that insert rows into the owned_adoptables table.

Find something like this: '$code', '','$alts',
and replace it with this: '$code', '','','$alts',


Step 2: Hard stuff is over, believe it or not. :P Download the 2 files attached to this post. Upload both in your main folder with admin.php and all that good stuff. Run the install.php page ONCE and then DELETE IT.

You're Done! You can check out the additional admin area in site settings -> plugins -> MAI Admin

Okay so I have not been able to beta test this much so please try it out and let me know what errors you get so I can fix 'em quick. I know all the basic functions work though. Also, please read the faq below BEFORE asking questions.

FAQ

Q: I don't understand what all the fields are for?
A: Read the handy dandy instruction thingy that's linked in the MAI Admin.

Q: Is there a way to transfer current alternates?
A: Not as of yet, sorry.

Q: Is this compatible with older versions of MA?
A: Uhm. Probably not. Stick to 1.2.* or higher.

Q: Okay so what do I put for the Alternates stuff when adding an adopt?
A: Enabled alternates as usual and enter random digits to satisfy the checks. The random digits will have no effect on the new alternate system, whether or not alternates are enabled WILL.

Q: Why isn't there an easier way to enable/disable alternates for certain adopts.
A: Good question, I'll think about it for a future update.


That's all folks! Enjoy!
Attached Files
File Type: php maiadmin.php (13.8 KB, 39 views)
File Type: php install.php (1.4 KB, 34 views)
__________________
[My Shop] ♥ [My Blog] ♥ [Subscribe] ♥ [My Mods] ♥ [Mod TOS]

Last edited by Kaeliah; 04-08-2011 at 12:31 AM. Reason: Slight update to the install file.
Reply With Quote
  #2  
Old 04-02-2011, 12:42 PM
Hall of Famer's Avatar
Hall of Famer Hall of Famer is offline
Administrator, Lead Coder
 
Join Date: Dec 2008
Location: South Brunswick
Posts: 4,448
Gender: Male
Credits: 227,332
Hall of Famer is on a distinguished road
Default

All I can say is amazing, glad you did it Kaeliah. I saw you made use of the plugin system, which looks interesting to me. Should be a very helpful way for noncoders to install mods/templates.
__________________


Mysidia Adoptables, a free and ever-improving script for aspiring adoptables/pets site.
Reply With Quote
  #3  
Old 04-02-2011, 03:23 PM
Kaeliah's Avatar
Kaeliah Kaeliah is offline
Premium Member
 
Join Date: Sep 2010
Location: Pennsylvania, United States
Posts: 485
Gender: Female
Credits: 23,043
Kaeliah will become famous soon enough
Send a message via AIM to Kaeliah Send a message via MSN to Kaeliah
Default

Yes, I also had all edits to the database done in the install script to make life easier for everyone.
__________________
[My Shop] ♥ [My Blog] ♥ [Subscribe] ♥ [My Mods] ♥ [Mod TOS]
Reply With Quote
  #4  
Old 04-02-2011, 03:50 PM
Hall of Famer's Avatar
Hall of Famer Hall of Famer is offline
Administrator, Lead Coder
 
Join Date: Dec 2008
Location: South Brunswick
Posts: 4,448
Gender: Male
Credits: 227,332
Hall of Famer is on a distinguished road
Default

I see, I am sure everyone will like this from you. I took a look at your script file a bit, seems that you created a new table that stores data of every alternate image for each species, which is a very good idea.

I also remember you said in your own trade script, users can trade multiple adoptables at the same time. Wonder how you coded a system like that. I've been manipulating the functions explode() and implode() to allow an array of variables to be stored in phpmyadmin. I did it for the friend/friendlist script, which will be released together with Mys v1.2.2 next week. In future I plan to make a multiple adoptables trade system based on this technique too, learning new PHP stuff always makes me excited. XD
__________________


Mysidia Adoptables, a free and ever-improving script for aspiring adoptables/pets site.
Reply With Quote
  #5  
Old 04-02-2011, 04:13 PM
Kaeliah's Avatar
Kaeliah Kaeliah is offline
Premium Member
 
Join Date: Sep 2010
Location: Pennsylvania, United States
Posts: 485
Gender: Female
Credits: 23,043
Kaeliah will become famous soon enough
Send a message via AIM to Kaeliah Send a message via MSN to Kaeliah
Default

Oi so many versions XD how will I ever keep up?

As for multiple adopts being traded it's all stored in a table as individual objects with a key that connects them back to their trade. So like it could be an item, pet or money.
__________________
[My Shop] ♥ [My Blog] ♥ [Subscribe] ♥ [My Mods] ♥ [Mod TOS]
Reply With Quote
  #6  
Old 04-02-2011, 04:33 PM
Hall of Famer's Avatar
Hall of Famer Hall of Famer is offline
Administrator, Lead Coder
 
Join Date: Dec 2008
Location: South Brunswick
Posts: 4,448
Gender: Male
Credits: 227,332
Hall of Famer is on a distinguished road
Default

lol it is not really that hard to keep up. I've released Mys v1.2.0 and v1.2.1 since you left the staff team. Mys v1.2.2 is currently under development, and Mys v1.2.3 will follow. At the beginning of May I will be working on the next major release, this will come out huge. We have two main features planned for Mys v1.3.0 already, you will soon have a preview of them from my blog.
__________________


Mysidia Adoptables, a free and ever-improving script for aspiring adoptables/pets site.
Reply With Quote
  #7  
Old 04-02-2011, 04:48 PM
Kaeliah's Avatar
Kaeliah Kaeliah is offline
Premium Member
 
Join Date: Sep 2010
Location: Pennsylvania, United States
Posts: 485
Gender: Female
Credits: 23,043
Kaeliah will become famous soon enough
Send a message via AIM to Kaeliah Send a message via MSN to Kaeliah
Default

Dang, I miss being on the dev team. I feel so out of the loop now XD
__________________
[My Shop] ♥ [My Blog] ♥ [Subscribe] ♥ [My Mods] ♥ [Mod TOS]
Reply With Quote
  #8  
Old 04-02-2011, 05:09 PM
Hall of Famer's Avatar
Hall of Famer Hall of Famer is offline
Administrator, Lead Coder
 
Join Date: Dec 2008
Location: South Brunswick
Posts: 4,448
Gender: Male
Credits: 227,332
Hall of Famer is on a distinguished road
Default

Its alright Kaeliah, dont worry about it. You can contribute to the community as a premium member too, even not as a dev staff people still love and respect you.

Edit: Posted a blog about Mys v1.3.0, maybe its too early to leak info of this major release at this moment. XD
__________________


Mysidia Adoptables, a free and ever-improving script for aspiring adoptables/pets site.
Reply With Quote
  #9  
Old 04-02-2011, 11:26 PM
Kaeliah's Avatar
Kaeliah Kaeliah is offline
Premium Member
 
Join Date: Sep 2010
Location: Pennsylvania, United States
Posts: 485
Gender: Female
Credits: 23,043
Kaeliah will become famous soon enough
Send a message via AIM to Kaeliah Send a message via MSN to Kaeliah
Default

yeah... it's still frustrating to not be able to play a bigger role though.
__________________
[My Shop] ♥ [My Blog] ♥ [Subscribe] ♥ [My Mods] ♥ [Mod TOS]
Reply With Quote
  #10  
Old 04-03-2011, 12:04 PM
Hall of Famer's Avatar
Hall of Famer Hall of Famer is offline
Administrator, Lead Coder
 
Join Date: Dec 2008
Location: South Brunswick
Posts: 4,448
Gender: Male
Credits: 227,332
Hall of Famer is on a distinguished road
Default

I understand Kaeliah. You left at a time when we were on the verge of Releasing Mys v1.2.0, I do not have the pound and trade system from you so I had to make them on my own. It was not a really bad experience for me though, at least I figured them out.

But lets not worry too much about this, okay? This is life, something you cant control on your own. Who would've known that you got sick all of a sudden and had to quit at a time like this? No one was blaming you, and in fact we all worried about you. Relax a bit and dont let all these bad things go over your head. ^^
__________________


Mysidia Adoptables, a free and ever-improving script for aspiring adoptables/pets site.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
alternate outcomes Nemesis Questions and Supports 3 07-03-2012 02:36 PM
EpicStats Plugin [by Kae] Kaeliah Mys v1.2.x Mods 9 04-10-2011 08:46 PM
View Active Promocodes Plugin HIddenPanda Mys v1.1.x Mods 11 01-25-2011 06:10 PM
Alternate adopt RipJawWolfFang Questions and Supports 10 02-03-2010 10:41 PM
Multiple multiple outcomes..? Quillink Suggestions and Feature Requests 5 05-31-2009 08:14 AM


All times are GMT -5. The time now is 12:20 AM.

Currently Active Users: 283 (0 members and 283 guests)
Threads: 4,078, Posts: 31,984, Members: 2,016
Welcome to our newest members, jolob.
BETA





What's New?

What's Hot?

What's Popular?


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, vBulletin Solutions Inc.
vBCommerce I v2.0.0 Gold ©2010, PixelFX Studios
vBCredits I v2.0.0 Gold ©2010, PixelFX Studios
Emoticons by darkmoon3636