Mysidia Adoptables Support Forum  

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

Notices

Reply
 
Thread Tools Display Modes
  #1  
Old 01-29-2014, 12:21 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: 503,955
Hall of Famer is on a distinguished road
Default Alchemy Mod

Well I've had the idea of working on an alchemy system since the initial Mys v1.3.0 release, but did not carry out for numerous reasons. Now I finally decided to give it a try and it took me only about 4-5 hours.

The idea of Alchemy is to mix two old items(called ingredients) to create a new item, which is normally rarer and more valuable(otherwise it does not justify the economics lol). The Alchemy Mod allows you to achieve just that, you can create some items that are rare or even impossible to obtain without performing alchemy. This will make your site considerably more interesting to a good number of your users, it also offers incentives for the act of item collection.

Below is a screenshot of the basic alchemy page, which allows you to choose two items to produce a new one. Note at this time being only two items can be used to produce a new item, there is no way to mix more than two:


This mod also comes with ACP integration, in which the admins can create alchemy practices that allow users to create new items from the old ones. Admins can also manipulate the settings for Alchemy System on their sites. The entire system can be turned on/off at will, while admins can specify whether alchemy success chance is 100% always or less. Other settings such as cost of action, recipe/license requirement for performing alchemy are also configurable.

To install the mod, simply run the installer script located at yoursite.com/install/alchemy.php. If your site is in a subdirectory, just change the example url accordingly. I assume you all know what I mean by this so I wont explain further.

If you have a brand new site or have never ever modified any part of the script, you may simply download the .rar file I provided and uploading them to your server through ftp. If the only changes you made are the mods I've offered lately(gender ratio and item drop), you may give a try just uploading the files as well as good chance my mods are compatible with each other.

However, for advanced users who have heavily modified sites, you will need to make some changes manually. I will post a brief description on how to do that in the next post.

At last, I hope you enjoy the new mod I've made for Mys v1.3.4, unlike the old ones like gender ratio which were simply revised to be compatible with the new version. You can edit the alchemy system to as you wish, maybe altering its user interface or adding more functionality(such as multiple item mix rather than just two), its all up to you.

Hall of Famer
Attached Files
File Type: rar Alchemy Mod v1.3.4.rar (16.2 KB, 93 views)
__________________


Mysidia Adoptables, a free and ever-improving script for aspiring adoptables/pets site.
Reply With Quote
  #2  
Old 01-29-2014, 12:36 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: 503,955
Hall of Famer is on a distinguished road
Default

For advanced users who have heavily modified sites, you may follow the procedure below to install this mod on your site. Ignore this post if your site works fine with simply uploading/overwriting files.

First of all, upload and run the installer script at yoursite.com/install/alchemy.php. This step is identical for all users, unless you wish to create tables/insert rows into database manually, but will be a pain with this mod.

Second, upload the following new files to your server. Most of these files do not exist in the base script so you wont run into file overwriting problems. The new files are:
/admincp/alchemy.php
/admincp/view/alchemyview.php
/classes/class_alchemy.php
/classes/class_alchemysetting.php
/classes/class_alchemyvalidator.php
/lang/admincp/lang_alchemy.php

You may do the same for the lang file: lang_inventory.php since I assume nobody has ever modified it. If the answer is opposite however, you may wish to search through the differences of the two lang files to see how to append new lang vars to your site. It shouldnt be difficult.

Alright then, in the next step you will need to modify some old script files. I hope you are ready. Now go to file /classes/class_adminsidebar.php and find these line:

PHP Code:
        $components->add(new Division(new Comment("Inventory"FALSE)));
        
$inventory = new Division;
        
$inventory->add(new Link("admincp/inventory/add""Give Item to User"));
        
$inventory->add(new Link("admincp/inventory/edit""Edit User Inventory"));
        
$inventory->add(new Link("admincp/inventory/delete""Delete Users items"));
        
$components->add($inventory); 
Add below:

PHP Code:
        $components->add(new Division(new Comment("Alchemy"FALSE)));
        
$alchemy = new Division;
        
$alchemy->add(new Link("admincp/alchemy/add""Create new Alchemy Practice"));
        
$alchemy->add(new Link("admincp/alchemy/edit""Edit Alchemy Practices"));
        
$alchemy->add(new Link("admincp/alchemy/delete""Remove Alchemy Practices"));
        
$alchemy->add(new Link("admincp/alchemy/settings""Change Alchemy Settings"));        
        
$components->add($alchemy); 
Next, go to file /classes/class_itemtablehelper.php and find the constructor:
PHP Code:
    public function __construct(){
        
parent::__construct();      
    } 
insert these two methods right below the constructor definition:
PHP Code:
    /**
     * The getItem method, fetches the item type.
     * @param int  $item
     * @access public
     * @return String
     */    
    
public function getItem($item){
        if(empty(
$item)) return "N/A";
        else return 
$item;        
    }
    
    
/**
     * The getItemImage method, fetches the item image.
     * @param id  $item
     * @access public
     * @return Image
     */
    
public function getItemImage($item){    
        
$item = new Item($item);
        
$image = new Image($item->imageurl$item->itemname);
        return 
$image;            
    } 
Then go to script file /inventory.php and find the method toss() at:

PHP Code:
    public function toss(){
        
$mysidia Registry::get("mysidia");
        
$item = new PrivateItem($mysidia->input->post("itemname"), $mysidia->user->username);  
        if(
$item->iid == 0) throw new ItemException("toss_none");
        
        if(
$mysidia->input->get("confirm")){
            
$item->toss();
            return;
        }        
    } 
Add a new method alchemy() right below it:

PHP Code:
    
    
public function alchemy(){
        
$mysidia Registry::get("mysidia");
        
$settings = new AlchemySetting($mysidia->db);
        if(
$settings->system == "disabled") throw new ItemException("alchemy_disabled");
        
        if(
$mysidia->input->post("iid") and $mysidia->input->post("iid2")){
            
$alchemy = new Alchemy($mysidia->input->post("iid"), $mysidia->input->post("iid2"), $settings);
            
$alchemy->mix();
            
$this->setField("alchemy"$alchemy);
            return;
        }
        
        
$stmt $mysidia->db->select("inventory", array("iid""itemname"), "owner = '{$mysidia->user->username}'");
        
$map $mysidia->db->fetchMap($stmt);
        
$this->setField("itemMap"$map);
        
$this->setField("settings"$settings);
    } 
Now open the file /view/inventoryview.php and find these lines:

PHP Code:
        $mysidia Registry::get("mysidia");
        
$document $this->document;
        
$document->setTitle($mysidia->lang->inventory); 
Add the three new lines below:

PHP Code:
        $document->addLangvar("You may manage these items as you like, or go to the alchemy page to make your own items: <br>");    
        
$document->add(new Link("inventory/alchemy""Use the Alchemy Service Now!"));    
        
$document->add(new Comment("<br><br>")); 
Next, find the toss() method at:
PHP Code:
    
    
public function toss(){
        
$mysidia Registry::get("mysidia");
        
$document $this->document;
        if(
$mysidia->input->get("confirm")){
            
$document->setTitle($this->lang->global_action_complete);
            
$document->addLangvar("{$this->lang->toss}{$mysidia->input->post("itemname")}{$this->lang->toss2}");
            return;
        }
    
        
$document->setTitle($this->lang->toss_confirm);
        
$document->addLangvar($this->lang->toss_warning);    

        
$confirmForm = new FormBuilder("confirmform""toss/confirm""post");
        
$confirmForm->buildPasswordField("hidden""action""toss")
                    ->
buildPasswordField("hidden""itemname"$mysidia->input->post("itemname"))
                    ->
buildButton("Please Toss""confirm""confirm");
        
$document->add($confirmForm);            
    } 
Append the alchemy() method right below it:

PHP Code:
    public function alchemy(){
        
$mysidia Registry::get("mysidia");
        
$document $this->document;
        
        if(
$mysidia->input->post("iid") and $mysidia->input->post("iid2")){
            
$alchemy $this->getField("alchemy");
            
$newitem $alchemy->getNewItem()->itemname;
            
$document->setTitle($this->lang->alchemy_success);
            
$document->addLangvar($this->lang->alchemy_newitem.$newitem.$this->lang->alchemy_newitem2);    
            return;        
        }

        
$document->setTitle($this->lang->alchemy_title);
        
$document->addLangvar($this->lang->alchemy);
        
$itemMap $this->getField("itemMap");
        
$settings $this->getField("settings");
        
$alchemyFrom = new Form("alchemyform""alchemy""post");
        
$alchemyFrom->add(new Comment("<b>Cost of performing Alchemy: {$settings->cost} {$mysidia->settings->cost}</b><br>"));
        
        
$alchemyFrom->add(new Comment($mysidia->lang->alchemy_choose));        
        
$items = new DropdownList("iid");
        
$items->add(new Option("None Selected""none"));
        if(
$itemMap->size() > 0){
            
$iterator $itemMap->iterator();
            while(
$iterator->hasNext()){
                
$item $iterator->nextEntry();
                
$items->add(new Option($item->getValue(), $item->getKey()));
            }
        }        
        
$alchemyFrom->add($items);

        
$alchemyFrom->add(new Comment($mysidia->lang->alchemy_choose2));        
        
$items2 = new DropdownList("iid2");
        
$items2->add(new Option("None Selected""none"));
        if(
$itemMap->size() > 0){
            
$iterator $itemMap->iterator();
            while(
$iterator->hasNext()){
                
$item2 $iterator->nextEntry();
                
$items2->add(new Option($item2->getValue(), $item2->getKey()));
            }
        }        
        
$alchemyFrom->add($items2);        
        
$alchemyFrom->add(new Button("Let's mix the items now!""submit""submit"));
        
$document->add($alchemyFrom);        
    } 
At last, open the file /functions/functions_items.php and add a new function to the bottom of the script(right above the php closing tag). It does not really do anything other than preventing some kind of bugs/error messages from possibly emerging:

PHP Code:
function items_recipe($item$adopt){
  
$note "The item {$item->itemname} is a recipe item, which cannot be used on any adoptable and can only be useful if you are performing alchemy.";
  return 
$note;

You are done with the modifications now, it was easier than you thought right? Anyway you may run into some problems, and in this case please post in this thread to let me know. I will find out where the errors are and fix them for you as soon as I get a chance.
__________________


Mysidia Adoptables, a free and ever-improving script for aspiring adoptables/pets site.
Reply With Quote
  #3  
Old 02-03-2014, 12:30 AM
LucasA33's Avatar
LucasA33 LucasA33 is offline
Member
 
Join Date: Jul 2011
Posts: 144
Gender: Male
Credits: 15,192
LucasA33 is on a distinguished road
Default

Simply amazing HOF =)
Thanks, might do something like this for evolution stones or something
Reply With Quote
  #4  
Old 02-04-2014, 05:15 PM
Abronsyth's Avatar
Abronsyth Abronsyth is offline
A Headache Embodied
 
Join Date: Aug 2011
Location: NY
Posts: 1,011
Gender: Male
Credits: 136,616
Abronsyth is on a distinguished road
Default

I don't suppose it'd be possible to also share a .zip file? I can't work with .rar files :(
__________________
My Mods Site (1.3.4, 2020 Mods)
Reply With Quote
  #5  
Old 02-04-2014, 05:17 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: 503,955
Hall of Famer is on a distinguished road
Default

Sure I can, although an .rar file is not that hard to work with if you download winrar.
Attached Files
File Type: zip Alchemy Mod v1.3.4.zip (18.3 KB, 18 views)
__________________


Mysidia Adoptables, a free and ever-improving script for aspiring adoptables/pets site.
Reply With Quote
  #6  
Old 02-04-2014, 11:12 PM
Kesstryl's Avatar
Kesstryl Kesstryl is offline
Member
 
Join Date: Feb 2012
Posts: 125
Gender: Female
Credits: 21,900
Kesstryl is on a distinguished road
Default

O.O I love it!
Reply With Quote
  #7  
Old 02-05-2014, 06:14 AM
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: 503,955
Hall of Famer is on a distinguished road
Default

Oh thanks. ^^ I hope this will be a valuable tiny little addition to your site.
__________________


Mysidia Adoptables, a free and ever-improving script for aspiring adoptables/pets site.
Reply With Quote
  #8  
Old 02-05-2014, 11:03 AM
Ruinily Ruinily is offline
Member
 
Join Date: Mar 2011
Location: England
Posts: 185
Gender: Female
Credits: 24,504
Ruinily is on a distinguished road
Default

Yeh that is an awesome idea, I wanted something like that on mine ages ago, but I think my coders on hiatus and my photoshops been refusing to work, and I've been busy so I havent had much time for it. ^_^' I know I was playing with the idea of using a system like this to create potions, or make jewellery and trinkets, ect. Is there any chance of this being compatible with older versions of Mysidia? >.>'
__________________

Chocolate butterfly cat pudding. o.o


And since even the programming on this forum doesnt like me anymore heres my sites address. XD
http://felkyocreatures.com/index.php
Reply With Quote
  #9  
Old 02-06-2014, 03:53 AM
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: 503,955
Hall of Famer is on a distinguished road
Default

What version of Mysidia Adoptables are you using? It shouldnt be difficult to get it to work with Mys v1.3.3, but not sure for even older versions.
__________________


Mysidia Adoptables, a free and ever-improving script for aspiring adoptables/pets site.
Reply With Quote
  #10  
Old 02-07-2014, 01:01 AM
Ruinily Ruinily is offline
Member
 
Join Date: Mar 2011
Location: England
Posts: 185
Gender: Female
Credits: 24,504
Ruinily is on a distinguished road
Default

Lol I'm sticking with 1.3.2... unless I go insane and try to upgrade. XD I was alright until I lost contact with my coder... I'm just praying nothing breaks now. >.>' And its okay if its too hard or difficult, I'll just have to either figure out something else, or just not do it. ^_^'

EDIT: My coders still around! :D She's just busy working on her own site, she said she'll take a quick look at this sometime. ^_^
__________________

Chocolate butterfly cat pudding. o.o


And since even the programming on this forum doesnt like me anymore heres my sites address. XD
http://felkyocreatures.com/index.php

Last edited by Ruinily; 02-12-2014 at 03:11 AM.
Reply With Quote
Reply


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
Alchemy Mod - HoF Nieth Questions and Supports 4 11-13-2015 12:52 PM


All times are GMT -5. The time now is 10:48 PM.

Currently Active Users: 625 (0 members and 625 guests)
Threads: 4,081, Posts: 32,032, 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 - 2024, vBulletin Solutions Inc.
vBCommerce I v2.0.0 Gold ©2010, PixelFX Studios
vBCredits I v2.0.0 Gold ©2010, PixelFX Studios
Emoticons by darkmoon3636