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)

Kyttias 07-07-2014 11:52 PM

Nah, I can't. I'm working from my localhost/wamp setup only for now, and it's not online-online. =/ I could get it online from an IP address, but I'd have to do some port forwarding with the router but I figured since I'm moving at the end of the month that I wasn't going to bother until I was settled in at my new place.

Kyttias 07-09-2014 12:06 PM

(I think we should move the discussion here, in case it's helpful to someone, rather than having it on our pages?)

Alright, before click: x
After click: x

I followed your instructions exactly? And your instructions very literally snuggled up the personality to error message right below it, already there by default. When your page is reloaded, it shows a profile. But by default on 1.3.4, at least, it just shows an error. I assume you just designed over the error? I can do that no problem. There -isn't- a profile page by default at that link at all, though, so I assume you made all of it yourself.

However, there are only two references to 'frozen' pages in my script on that page and none of them look like what you have in the step after that. It's just "elseif($this->adopt->isFrozen() == "yes") throw new LevelupException("frozen");" so I couldn't continue your tutorial from there. Line numbers didn't help me at all because none of those matched, and there is no "$document->add($summary);" going on anywhere in that file. Nor any reference to 'document' at all.

1.3.4 levelup.php (with the tiny edit I managed to do):
PHP Code:

<?php

use Resource\Native\Integer;
use 
Resource\Collection\ArrayList;
use 
Resource\Utility\Curl;

class 
LevelupController extends AppController{

    const 
PARAM "aid";
    private 
$adopt;
    private 
$settings;

    public function 
__construct(){
        
parent::__construct();
        
$this->settings = new LevelSetting;
        
$mysidia Registry::get("mysidia");

        if(
$mysidia->input->action() == "click" or $mysidia->input->action() == "siggy"$this->adopt = new OwnedAdoptable($mysidia->input->get("aid"));
        if(
$mysidia->user instanceof Member){
            
$status $mysidia->user->getstatus();   
            if(
$status->canlevel == "no") throw new InvalidActionException("banned");
        }    
    }
    
    public function 
index(){
        throw new 
InvalidActionException("global_action");
    }
    
    public function 
click(){
        
$mysidia Registry::get("mysidia");
        
$date = new DateTime;
        
$ip secure($_SERVER['REMOTE_ADDR']);
        
        if(
$this->settings->system != "enabled") throw new NoPermissionException("disabled");
        elseif(
$this->adopt->hasVoter($mysidia->user$date)){
            
$message "<div id='personality'>This {$this->adopt->size}-sized, {$this->adopt->nature} novu likes {$this->adopt->likes} and dislikes {$this->adopt->dislikes}.</div>";
            
$message $message .= (($mysidia->user instanceof Member)?$mysidia->lang->already_leveled_member:$mysidia->lang->already_leveled_guest); 
            throw new 
LevelupException($message);        
        }
        elseif(
$this->adopt->isFrozen() == "yes") throw new LevelupException("frozen");
        elseif(
$mysidia->user->getVotes() > $this->settings->number) throw new LevelupException("number");
        elseif(
$this->settings->owner == "disabled" and $this->adopt->getOwner() == $mysidia->user->username){
             throw new 
LevelupException("owner");               
        }
        else{
            
$newClicks $this->adopt->getTotalClicks() + 1;
            
$this->adopt->setTotalClicks($newClicks"update");
            
$mysidia->db->insert("vote_voters", array("void" => NULL"date" => $date->format('Y-m-d'), "username" => $mysidia->user->username"ip" => $ip"adoptableid" => $mysidia->input->get("aid")));         
            
            if(
$this->adopt->hasNextLevel()){
                
$nextLevel $this->adopt->getNextLevel();
                
$requiredClicks $nextLevel->getRequiredClicks();
                if(
$requiredClicks and $newClicks >= $requiredClicks$this->adopt->setCurrentLevel($nextLevel->getLevel(), "update");
            }
            
            
$reward $mysidia->user->clickreward($this->settings->reward);
            
$mysidia->user->changecash($reward);            
            
$this->setField("adopt"$this->adopt);
            
$this->setField("reward", new Integer($reward));            
        }
    }

    public function 
siggy(){
        
$mysidia Registry::get("mysidia");
        
// The adoptable is available, let's collect its info
        
$usingimage "no";
        
$image $this->adopt->getImage(); 
      
        
$usegd $mysidia->settings->gdimages;
        
$imageinfo = @getimagesize($image);
        
$imagemime $imageinfo["mime"]; // Mime type of the image file, should be a .gif file...

        
if(function_exists('imagegif') and $usegd == "yes" and $imagemime == "image/gif"){
            
$usingimage "yes"//Turn the template system off
            
$type $this->adopt->getType();
            list(
$width$height$type$attr) = getimagesize($image); // The size of the original adoptable image

            // Lets create the new target image, with a size big enough for the text for the adoptable
            
$newheight $height 72;
            
$newwidth = ($newwidth 250)?250:$width;
            
$img_temp imagecreatetruecolor($newwidth$newheight); 
            
$alphablending true;  
         
            
// Lets create the image and save its transparency  
            
$img_old = @imagecreatefromgif($image);  
            
imagealphablending($img_oldtrue);  
            
imagesavealpha($img_oldtrue);
   
            
// Lets copy the old image into the new image with  
            
ImageCopyResampled($img_temp$img_old0000$width$height$width$height);    
            
$textheight $width 2;
            
$image $img_temp;
            
$bgi imagecreatetruecolor($newwidth$newheight);
            
$color imagecolorallocate($bgi515151);
         
            
// Build text for siggy
            
$str1 "Name: ".$this->adopt->getName();
            
$str2 "Owner: ".$this->adopt->getOwner();
            
$str3 "Click Here to Feed Me!";
            
$str4 "More Adopts at:";
            
$str5 "www.".constant("DOMAIN");

            
// Renger Image
            
imagestring ($image120$textheight,  $str1$color);
            
imagestring ($image120$textheight 13,  $str2$color);
            
imagestring ($image120$textheight 26,  $str3$color);
            
imagestring ($image120$textheight 42,  $str4$color);
            
imagestring ($image120$textheight 55,  $str5$color);
            
$background imagecolorallocate($image000);  
            
ImageColorTransparent($image$background);  
 
            
// At the very last, let's clean up temporary files
            
header("Content-Type: image/GIF");
            
ImageGif ($image);
            
imagedestroy($image);
            
imagedestroy($img_temp);
            
imagedestroy($img_old);
            
imagedestroy($bgi);

        }
        else{      
                
// We are going to try and get this image the old fashioned way...
            
$extList = array();
            
$extList['gif'] = 'image/gif';
            
$extList['jpg'] = 'image/jpeg';
            
$extList['jpeg'] = 'image/jpeg';
            
$extList['png'] = 'image/png';

            
//Define the output file type
            
$contentType 'Content-type: '.$extList$imageinfo['extension'] ];

            if(
$imageinfo['extension'] =! "image/gif" and $imageinfo['extension'] =! "image/jpeg" and $imageinfo['extension'] =! "image/png"){             
                throw new 
InvalidIDException("The file Extension is not allowed!");
            }
            else{
                
// File type is allowed, so proceed
                
$status "";
                
header($contentType);
                
$curl = new Curl($image);
                
$curl->setHeader();
                
$curl->exec();
                
$curl->close();
            } 
        }
    }
    
    public function 
daycare(){        
        
$daycare = new Daycare;
        
$adopts $daycare->getAdopts();
        
$this->setField("daycare"$daycare);
    }
}
?>

However, in 1.3.4, we have another file in view/levelupview.php, and it contains all the document writing variables, but won't be able to find $message written on a local scope in a completely different document, probably:

PHP Code:

<?php

use Resource\Collection\ArrayList;
use 
Resource\Utility\Curl;

class 
LevelupView extends View{
    
    public function 
click(){
        
$mysidia Registry::get("mysidia");
        
$document $this->document;                
        
$adopt $this->getField("adopt");            
        
$reward $this->getField("reward")->getValue();
        
$document->setTitle("{$this->lang->gave} {$adopt->getName()} one {$this->lang->unit}");

        
$image $adopt->getImage("gui");        
        
$image->setLineBreak(TRUE);        
        
$summary = new Division;
        
$summary->setAlign(new Align("center"));
        
$summary->add($image);    
        
$summary->add(new Comment("{$this->lang->gave}{$adopt->getName()} one {$this->lang->unit}."));
        
$summary->add(new Comment($this->lang->encourage));
        
$summary->add(new Comment("<br> You have earned {$reward} {$mysidia->settings->cost} for leveling up this adoptable. "));
        
$summary->add(new Comment("You now have {$mysidia->user->getcash()} {$mysidia->settings->cost}"));
        
$document->add($summary);            
    }

    public function 
siggy(){
    
    }
    
    public function 
daycare(){
        
$mysidia Registry::get("mysidia");
        
$document $this->document;    
        
$document->setTitle($this->lang->daycare_title);
        
$document->addLangvar($this->lang->daycareTRUE);
        
        
$daycare $this->getField("daycare");
        
$adopts $daycare->getAdopts();
        
$daycareTable = new Table("daycare"""FALSE);
        
$daycareTable->setBordered(FALSE);
        
$total $daycare->getTotalAdopts();
        
$index 0;

        for(
$row 0$row $daycare->getTotalRows(); $row++){
            
$daycareRow = new TRow("row{$row}");
            for(
$column 0$column $daycare->getTotalColumns(); $column++){
                
$adopt = new OwnedAdoptable($adopts[$index]);
                
$cell = new ArrayList;
                
$cell->add(new Link("levelup/click/{$adopt->getAdoptID()}"$adopt->getImage("gui"), TRUE));
                
$cell->add(new Comment($daycare->getStats($adopt)));
                
$daycareCell = new TCell($cell"cell{$index}");
                
$daycareCell->setAlign(new Align("center""center"));
                
$daycareRow->add($daycareCell);
                
$index++;
                if(
$index == $total) break;
            }
            
$daycareTable->add($daycareRow);            
        }
        
        
$document->add($daycareTable);
        if(
$pagination $daycare->getPagination()) $document->addLangvar($pagination->showPage());
    }
}
?>

That's with no modifications, of course, because it's a file you aren't used to and had no instructions for. I can modify it, of course. I actually don't need anymore help? Seems pretty straight forward from here on out.

I really wish Mysidia would feed pets on a button click, rather than on a page view. *sigh*

Hwona 07-09-2014 12:12 PM

^Oh, so you can figure it out? As long as you get over the "not having the document" stuff in the pages, the rest might work.
Edit: With the version I'm using the error title shows up too I think. It just has different text. So yes, you basically have everything the way I have it for already clicked non-frozen pets. You just need to style it.

Kyttias 11-11-2014 10:07 AM

Your first two image steps are missing.

So until that's fixed, in case anyone's curious, you're basically just making a field like the ones that hold the type, name, and owner. They're VARCHAR 40 which should be plenty of room - that's 40 letters/characters, of course. If you assign a default value, all currently existing adopts will have their new column filled with that default value.

http://fc07.deviantart.net/fs70/f/20...as-d8623px.gif

tahbikat 12-20-2015 04:59 PM

Has anyone added this successfully for 1.3.4?

The first step works for adoptables on the adopt page, but not for shop (stock) adoptables, and I haven't tested out breed adopts and promo ones.

I've tried adding and tweaking the code and putting it in the class files (class_stockadopt, class_promo, etc) but I've been unsuccessful so far. For example getting errors when I try to purchase an adopt. Any help? :< Would really love this on my site.

EDIT: Umm, nevermind, I did it. Lordy I have such a nasty habit of fixing my problems literally right after I post them LOL.

parayna 12-18-2016 09:13 PM

I know this post is pretty much dead, but does anyone have an idea for what the images on the front page show? I'd like to implement this on my 1.3.4 site but the images are now broken.. xD

Thank you ^_^


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

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