How To Create an Explore System in Mys. 1.3.4

Forum
Last Post
Threads / Messages
Do you think there can be a away to use stats with the explore system? Instead of having a certain item in the inventory, it will look for a certain stat on your fav pet.

I have stats like str, int, agi, def. To explore a area that fav pet str should be over a certain number for the user to continue.
 
That is very possible! I don't have the files I need with me on this computer, but once I get on my laptop I'll be able to work on this. I do need to check out how to select a user's fave pet, specifically, so it might take some time. In the mean time, you should have a look at this thread :)
http://mysidiaadoptables.com/forum/showthread.php?t=5116
 
I have the files on hand :)
Here's the code you need to select the fav pet:
PHP:
$mysidia->user->getprofile();
if ((int)$profile->getFavpetID() == 0) {
      $document->addLangVar('No fav pet set.');
      return;
}
$favpet = new OwnedAdoptable($profile->getFavpetID());

// Now you can select the stats of the pet.

if ($favpet->str < 10){
      $document->addLangVar('Your pet isn\'t strong enough to travel here.');
      return;
}

// Explore code here.
 
I tried this and got:

Fatal error: Class 'AppController' not found in [...]/wubbiepets/explorearea1.php on line 6

What am I doing wrong?
 
I keep getting this error when I try to make a explore page. The main explore page works but not any of the others. I then had to just move the items and pets to the main page because it would not work.

Fatal error: Class 'AppController' not found in /home/monstari/public_html/explorearea1view.php on line 3
 
Error
PHP:
 Fatal error: Class 'View' not found in /home/silvatal/public_html/view/explorearea1view.php on line 3
 
In your URL bar, do you go to explorearea1view.php? If so, get rid of the .php at the end since I get the same error when I do that. So instead of YOURSITE.com/explorearea1.php, it should be YOURSITE.com/explorearea1.
 
Is there a way to make it so users can click to get the item or pet that shows up, instead of them automatically getting them? This way they're not getting slammed with a pet they may not want or item that might not need.
 
Silver, what did you call your explore pages? Did you call them explorearea1, explorearea2, etc?
 
NoBody's Hero, you'd need to create a hidden form and set the pet/item image as the button, and then use an if input statement to run the append action upon clicking. Then you could just add a refresh line so that it brings them back to the explore page after a few moments. Kyttias has a script similar like this with her explore script, but you could certainly apply the same concept to this explore script; http://mysidiaadoptables.com/forum/showthread.php?t=4955

I hope that helps :D
 
I've run into a problem where clicking "explore?" makes you take 2 steps at a time. Or when the steps reset for the day, you might start out with 2 or 4 steps upon clicking the page. This is what I have (not including the css):
PHP:
class Explorearea1View extends View{
	
	public function index(){
	    $mysidia = Registry::get("mysidia");
		$document = $this->document;
        	$document->setTitle("Forest Path");  
		$today = date("d"); //Day of the month
		$profile = $mysidia->user->getprofile();
                $favpet = new OwnedAdoptable($profile->getFavpetID());
                $name = $favpet->getName();
                $coatiChance = rand(1,100);
                $boarChance = rand(1,100);
                $stepstaken = $mysidia->user->exploretimes;
        // Reset explore counter if the last recorded exploration was on a different day than today: 
            $reset = $mysidia->user->lastday != $today;
        
        // Allow user to explore if they are under the limit or if reset condition is true.  
            if ($mysidia->user->exploretimes <= 40 || $reset) {   
                // Update the last day that they explored to today 
                $mysidia->db->update("users", array("lastday" => $today), "username = '{$mysidia->user->username}'"); 

                // If $reset condition was true, reset the count to 1, otherwise increment the existing count.  
                $updatedExploreTimes = $reset ? 1 : $mysidia->user->exploretimes + 1;  
                //$ExploreTimesFix = $mysidia->user->exploretimes - 1;
                 
                $mysidia->db->update("users", array("exploretimes" => ($updatedExploreTimes)), "username = '{$mysidia->user->username}'");
                //$mysidia->db->update("users", array("exploretimes" => ($ExploreTimesFix)), "username = '{$mysidia->user->username}'");

		  $document->add(new Comment("<div class = 'scene'><img src='http://orig08.deviantart.net/ccf7/f/2017/038/9/8/forestexplore_by_hoafan-day972y.png' style='width:50%;height:50%;'></div>"));
		  $document->add(new Comment("<b>Steps: {$stepstaken} / 40</b>"));
		  
		  // This part gives a coati swirl to the user!
		  if($mysidia->input->post("coati")){
        if($coatiChance >= 70) {
        $species = "Coati Swirl";
        $document->add(new Comment("The Coati doesn't want to follow, but it gives {$name} an egg instead! It can be found in your pantry"));
        $newadopt = new StockAdopt($species);
	$newadopt->append($mysidia->user->username);}
	elseif($coatiChance < 70) {$document->add(new Comment("The coati quickly scurries off; startled by {$name}. Better luck next time!"));}
        }
        
        // This part gives a boarBQ to the user!
		  if($mysidia->input->post("boarBQ")){
        if($boarChance >= 80) {
        $species = "BoarBQ";
        $document->add(new Comment("{$name} somehow finds a way to calm its temper, and it gives them an egg! It can be found in your pantry"));
        $newadopt = new StockAdopt($species);
	$newadopt->append($mysidia->user->username);
	}
	elseif($boarChance < 80) {$document->add(new Comment("{$name} runs for their life as the boar charges with sharp tusks!"));}
        }
        
		  //This is where exploration starts!
		if ($mysidia->user->exploretimes <= 40) {  
			$random = rand(1,100);

			if($random > 1 && $random < 20){
				$species = "Coati Swirl";
				
				
				//adopt's image!
				$document->add(new Comment("<div class = 'adopt'><img src='http://orig07.deviantart.net/b589/f/2017/070/8/c/csadult_by_hoafan-db1zf6y.png'></div>"));
				$document->add(new Comment("Woah there! Is that a {$species}? Maybe {$name} can convince it to follow?"));
				$CoatiForm = new FormBuilder("coatiform", "", "post");
        $CoatiForm->buildButton("Try your luck", "coati", "submit");
				$document->add($CoatiForm);
			}
			if($random >= 21 && $random <= 30){
				 
				
				$document->add(new Comment("{$name} finds absolutely nothing.")); 
			}

			if($random >= 41 && $random <= 60){
			
				$document->add(new Comment("{$name} accidentally tripped over a rock, but they seem okay."));
			}
			if($random >= 61 && $random <= 70){
				$species = "Boar BQ";
				$document->add(new Comment("<div class = 'adopt'><img src='http://orig02.deviantart.net/4e8b/f/2017/077/c/e/bbqadult_by_hoafan-db2qlpt.png'></div>"));
				$document->add(new Comment("Look out, it's a {$species}! It doesn't look too friendly..."));
				$BoarForm = new FormBuilder("boarform", "", "post");
        $BoarForm->buildButton("Try your luck", "boarBQ", "submit");
				$document->add($BoarForm);
				
			}
			if($random >= 71 && $random <= 75){
				$species = "Spaniel Flan";
				//$newadopt = new StockAdopt($species);
				//$newadopt->append($mysidia->user->username);
				
				$document->add(new Comment("{$name} can hear birds chirping."));
			}
			if($random >= 91 && $random <= 99){
			$amount = rand(1,5);
				$mysidia->user->changecash($amount);
				$document->add(new Comment("Oh look! {$name} found $ {$amount}!"));
          		  }  
			if($random == 100){
				$species = "Spaniel Flan";
				//$newadopt = new StockAdopt($species);
				//$newadopt->append($mysidia->user->username);
				
				$document->add(new Comment("{$name} sees something dart past in the bushes. It was too fast to recognize."));
			}
			else{
			
            			$document->add(new Comment("<a href='/explorearea1'>Explore?</a>", FALSE));
            }  
		}
		else{
		$document->add(new Comment("It seems that {$name} explored too much today, why don't you let them rest?", FALSE));
		}   

	}
	}

}
"ExploreTimesFix" was a remedy I tried to use to counter the 2-steps thing by just removing 1 step, but it just ended up subtracting 2 steps instead of adding 2, which fixed nothing if not make it worse than it was, so I commented it out.

There's also the occasional moment where no dialogue will appear besides the "explore?" link; and running out of steps will show the user a blank page. (Not a white page, but just a blank page with no words or pictures)
 

Similar threads

Users who are viewing this thread

  • Forum Contains New Posts
  • Forum Contains No New Posts

Forum statistics

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

Latest Threads

Top