Mysidia Adoptables Support Forum

Mysidia Adoptables Support Forum (http://www.mysidiaadoptables.com/forum/index.php)
-   Mys v1.2.x Mods (http://www.mysidiaadoptables.com/forum/forumdisplay.php?f=38)
-   -   Hall of Famer's Gender Ratio Mod v1.2 (http://www.mysidiaadoptables.com/forum/showthread.php?t=2353)

Hall of Famer 08-28-2011 05:46 AM

Hall of Famer's Gender Ratio Mod v1.2
 
1 Attachment(s)
Well it is finally time to upgrade my old Mods to Mys v1.2.x compatible version. The first one I am doing is this Gender Ratio Mod, since its rather simple. The evolution Mod will be done after I complete ACP-Integration for Itemshop, it will use the plugin system just like Kaeliah's Multi-Adopt Image engine.

To start off, I am assuming you guys/gals know how to add columns in tables? Well it does not matter if you dont, just run the script called install_genderratio.php on your site and delete it. Anyway create a new column at the end of table prefix.adoptables:

PHP Code:

'genderratio'INT11 )', default 50 

Next, go to admin.php and find the following lines:

PHP Code:

                                            <p>Alternate Outcomes Selection Information:</p>
                                            <
p>
                                                
Start using the alternate outcome at level number
                                                <
input name='altoutlevel' type='text' id='altoutlevel' size='6' maxlength='6'>
                                                <
br />
                                                (Use 
Level 0 to have the alternate outcome be used from birthThis will not affect the first egg image.)
                                            </
p>
                                            <
p>
                                                
The alternate outcome has a chance of 1 in 
                                                
<input name='altchance' type='text' id='altchance' size='6' maxlength='6'>
                                                
of being selected.<br />
                                                (
Here you can select the chance that the alternate images for this adoptable are used
                                                
So, for an equal chance of using say male or female images
                                                
put 2 in the box to have a 1 out of 2 or 50chance of using the alternate image
                                                If 
you want to have the alternate images be rare images, use a higher number
                                                
like 100 for a 1 out of 100 chance of using the alternates.)
                                            </
p>
                                            <
p>
                                                <
input type='submit' name='Submit' value='Create This Adoptable'
                                            </
p>
                                        </
form>"; 

Replace with:

PHP Code:

 <p>Alternate Outcomes Selection Information:</p>
                                            <
p>
                                                
Start using the alternate outcome at level number
                                                <
input  name='altoutlevel' type='text' id='altoutlevel' size='6'  maxlength='6'>
                                                <
br />
                                                (Use 
Level 0 to have the  alternate outcome be used from birthThis will not affect the first /  egg image.)
                                            </
p>
                                            <
p>
                                                
The alternate outcome has a chance of 1 in 
                                                
<input name='altchance' type='text' id='altchance' size='6' maxlength='6'>
                                                
of being selected.<br />
                                                (
Here you can select the  chance that the alternate images for this adoptable are used
                                                
So, for an equal chance of using say male or female images
                                                
put 2 in the box to have  a 1 out of 2 or 50chance of using the alternate image
                                                If 
you want to have the alternate images be rare images, use a higher number
                                                
like 100 for a 1 out of 100 chance of using the alternates.)
                                            </
p>
                          <
p>The Gender Ratio of your adoptable is 
                          
<input name='genderratio' type='text' id='genderratio' size='6' maxlength='6'
                          <
p>
                                            <
p>
                                                <
input type='submit' name='Submit' value='Create This Adoptable'
                                            </
p>
                                        </
form>"; 

Now you will have to edit nadopt.php to ensure the value entered for genderratio will appear in database. Find:

PHP Code:

        $alternates $_POST["alternates"];
        
$altoutlevel $_POST["altoutlevel"];
        
$altchance $_POST["altchance"]; 

Add below:
PHP Code:

        $genderratio $_POST["genderratio"]; 

Also in nadopt.php, find the following codes:

PHP Code:

            runquery("INSERT INTO {$prefix}adoptables VALUES ('', '{$name}', '{$class}' ,'{$description}','{$eggimage}','{$cba}','{$promocode}', '{$freqcond}', '{$number}','{$datecond}','{$date}','{$adoptscond}','{$maxnumcond}','{$morethannum}','{$usergroupcond}','{$usergroups}','{$alternates}','{$altoutlevel}','{$altchance}', '{$cost}')"); 

Replace with:

PHP Code:

            runquery("INSERT INTO {$prefix}adoptables VALUES ('',  '{$name}', '{$class}'  ,'{$description}','{$eggimage}','{$cba}','{$promocode}', '{$freqcond}',  '{$number}','{$datecond}','{$date}','{$adoptscond}','{$maxnumcond}','{$morethannum}','{$usergroupcond}','{$usergroups}','{$alternates}','{$altoutlevel}','{$altchance}',  '{$cost}', '{$genderratio}')"); 

You are done with nadopt.php, but the game is not over yet. We have yet to add the gender generation script. To do this, open doadopt.php and find the following lines:

PHP Code:

                        $genders = array('f''m');
                        
$rand rand(0,1);
                        
                        
runquery("INSERT INTO {$prefix}owned_adoptables VALUES ('', '{$row['type']}', '$name','$loggedinname','0','0', '$code', '','$alts','fortrade','no', '$genders[$rand]','0')"); 

Replace the entire text with:

PHP Code:

$tempgender rand(099);
if(
$tempgender $row['genderratio']) {
$gender "f";
unset(
$tempgender);
}
else {
$gender "m";
unset(
$tempgender);
}
runquery("INSERT INTO {$prefix}owned_adoptables VALUES ('',  '{$row['type']}', '$name','$loggedinname','0','0', '$code',  '','$alts','fortrade','no', '$gender','0')"); 

This should do the trick. I've uploaded the file install_genderratio.php, run it on your site to add column genderration in only one step. Note the range of gender ration is between 0 to 100. A gender ratio of 0 means the adoptable is 100% male, a gender ratio of 100 means the adoptable is 100% female. The adoptable has equal chance to be male or female if the value is set to be 50.

Hall of Famer

Linkin-Dreamer 08-28-2011 08:36 AM

:O Neat! I might use this, it looks really good!

SilverDragonTears 08-28-2011 04:47 PM

Wait what's the difference with this and the current gender ratio?

Hall of Famer 08-28-2011 05:17 PM

umm there is no gender ratio feature for an official release. I am assuming you are talking about the old gender ratio script I made for Mys v1.1.x? Well there aint a big difference, just this one is for Mys v1.2.x and the old one may not be compatible with latest release.

SilverDragonTears 08-28-2011 05:26 PM

oh what's it do?

Hall of Famer 08-28-2011 05:30 PM

With the gender ratio script you can set the ratio of male and female for a certain species, it can even be 100% male or 100% female.

SilverDragonTears 08-28-2011 05:31 PM

ohhhhhhhhhhhh nice!!

Hall of Famer 08-28-2011 05:50 PM

Thanks for your comment, you are again more than welcome to test the code on your site to see if it works for you.

SilverDragonTears 08-28-2011 05:57 PM

I will eventually... .I don't think I have use for it at the moment... but I'm sure I will soon.

Hall of Famer 08-29-2011 04:51 PM

Alright, you may use it at anytime you want. There is a chance that I may update the script once Mys v1.3.0 is released. Also the Gender Ratio Mod v1.2 fixed a flaw in the old script. It may take some time to explain, I will tell you if you want to.

SilverDragonTears 09-04-2011 02:54 AM

my doadopt.php looks like this:

Code:

$code = rand(1, 20000);
                        $genders = array('f', 'm');
                        $rand = rand(0,1);
                        $petgender = $genders[$rand];
                        switch($petgender){
                          case "f":
                          $alts = "yes";
                          break;
                          default:
                          $alts = "no";
                        }

b/c i'm using the alternate gender mod. How do i use it with this?

Hall of Famer 09-04-2011 03:14 AM

Well then, remove the alternate gender mod codes you've posted above, and replace with this:

PHP Code:

$code rand(1,20000)
$tempgender rand(099);
if(
$tempgender $row['genderratio']) {
$gender "f";
$alts "yes";    
unset(
$tempgender);
}
else {
$gender "m";
$alts "no";          
unset(
$tempgender);
}

runquery("INSERT INTO {$prefix}owned_adoptables VALUES ('',  '{$row['type']}', '$name','$loggedinname','0','0', '$code',  '','$alts','fortrade','no', '$gender','0')"); 


SilverDragonTears 09-05-2011 03:54 PM

Thanks, is this just for alternate images or for the main adopt?

Hall of Famer 09-05-2011 04:46 PM

For main adopt I think.

SilverDragonTears 09-05-2011 04:59 PM

That's perfect =D Exactly what I need!

RoconzaArt 09-12-2011 06:17 PM

I some how did some thing wrong and it's not creating the adoptable. I can't tell if it this or a evolution mod.The adopt shows up in the adopt page but when I go to adopt it, it will not add the adopt to my account.

Hall of Famer 09-12-2011 11:31 PM

Well are you like unable to create new adoptables through ACP, or that you cannot adopt new pets? Chances are your database structures in prefix.adoptables and prefix.owned_adoptables are messed up, please show me what you get from phpMyadmin. I do not believe the evolution system will cause any problem like that, since it does not really modify any existing tables or columns.

RoconzaArt 09-12-2011 11:48 PM

http://i52.tinypic.com/2pzcgh0.jpg
http://i55.tinypic.com/dra7p2.jpg

Hall of Famer 09-12-2011 11:53 PM

Well did you follow the instruction I provided? The tables look fine, you will need to go to nadopt.php and find this line:

PHP Code:

runquery("INSERT INTO {$prefix}adoptables VALUES ('',  '{$name}', '{$class}'  ,'{$description}','{$eggimage}','{$cba}','{$promocode}', '{$freqcond}',  '{$number}','{$datecond}','{$date}','{$adoptscond}','{$maxnumcond}','{$morethannum}','{$usergroupcond}','{$usergroups}','{$alternates}','{$altoutlevel}','{$altchance}',  '{$cost}', '{$genderratio}')"); 

See if your mysql query insert command is different from the one I provided. If so, replace the old one with the new line above.

RoconzaArt 09-13-2011 12:03 AM

I did what you said and it's still not working.

PHP Code:

<?php

include("inc/functions.php");
$admin true;

//***************//
//  START SCRIPT //
//***************//

if($isloggedin == "yes")
{
    
$group getgroup();
    
$cancp cancp($group);
    
$canedit cando($group"canmanageadopts");

    if(
$cancp == "yes" and $canedit == "yes")
    {
        
// We are logged in and can access this page, so let's get the post info...
        
$name $_POST["name"];
        
$class $_POST["class"];
        
$description $_POST["description"];
        
$cost $_POST["cost"];
        
$imageurl $_POST["imageurl"];
        
$existingimageurl $_POST["existingimageurl"];
        
$cba $_POST["cba"];
        
$promocode $_POST["promocode"];
        
$freqcond $_POST["freqcond"];
        
$number $_POST["number"];
        
$datecond $_POST["datecond"];
        
$date $_POST["date"];
        
$adoptscond $_POST["adoptscond"];
        
//////////////////////////////////////////////////////////////////////
        
$maxnumcond $_POST["maxnumcond"];
        
$morethannum $_POST["morethannum"];
        
$usergroupcond $_POST["usergroupcond"];
        
$usergroups $_POST["usergroups"];
        
//////////////////////////////////////////////////////////////////////
        
$alternates $_POST["alternates"];
        
$altoutlevel $_POST["altoutlevel"];
        
$altchance $_POST["altchance"];
        
$genderratio $_POST["genderratio"];  

        
// Now we run some checks to make sure that we have a go.

        
if($name == "")
        {
            
$error "You did not enter in a name for the adoptable. Please go back and try again.";
        }

        if(
$name == "")
        {
            
$error "You did not enter in a name for the adoptable. Please go back and try again.";
        }

        if(
$imageurl == "" and $existingimageurl == "none")
        {
            
$error "You did not select an image for this adoptable. Please go back and make sure an image is selected for this adopt.";
        }

        if(
$imageurl != "" and $existingimageurl != "none")
        {
            
$error "You selected two images for the adoptable's egg image. Please go back and make sure that either the image textbox is blank or the image dropdown box is set to No Exising Image.";
        }

        if(
$cba != "always" and $cba != "promo" and $cba != "conditions")
        {
            
$error "You did not choose a valid scenario when this adoptable can be adopted. Please go back and either select the Always option, the Promo option or the Conditions option.";
        }

        
//If we are using a promo code, we should have a promo code in the box...
        
if($cba == "promo" and $promocode == "")
        {
            
$error "You selected that this adoptable is available for adoption only with a promo code, but you did not enter in a promo code. Please go back and either change this setting or type in a valid promo code.";
        }

        
//If we are using conditions...

        
if($cba == "conditions")
        {
            if(
$freqcond == "enabled" and !is_numeric($number))
            {
                
$error "A condition is enabled but is blank or has an incorrect value. Please go back and double check your conditions and that they contain valid input.";
            }

            if(
$datecond == "enabled" and $date == "")
            {
                
$error "A condition is enabled but is blank or has an incorrect value. Please go back and double check your conditions and that they contain valid input.";
            }

            if(
$adoptscond == "enabled")
            {
                if(
$moreless == "" or !is_numeric($morelessnum) or $levelgrle == "" or !is_numeric($grlelevel))
                {
                    
$error "A condition is enabled but is blank or has an incorrect value. Please go back and double check your conditions and that they contain valid input.";
                }
            }

            if(
$maxnumcond == "enabled" and !is_numeric($morethannum))
            {
                
$error "A condition is enabled but is blank or has an incorrect value. Please go back and double check your conditions and that they contain valid input.";
            }

            if(
$usergroupcond == "enabled" and !is_numeric($usergroups))
            {
                
$error "A condition is enabled but is blank or has an incorrect value. Please go back and double check your conditions and that they contain valid input.";
            }
        }

        if(
$alternates == "enabled")
        {
                if(!
is_numeric($altoutlevel) or !is_numeric($altchance))
                {
                    
$error "There has been an error with the adoptable's alternate settings you selected. Please go back and make sure the alternate values are filled in correctly.";
                }
        }

        
//Check and see if an adoptable with this name already exists...

        
$query "SELECT * FROM {$prefix}adoptables WHERE type = '{$name}'";
        
$result runquery($query);
        
$num mysql_num_rows($result);

        if(
$num 0)
        {
            
$error "An adoptable with this name already exists in your database. Please go back and rename the adoptable to something different.";
        }

        
//If we have an error, show it.  Otherwise continue...

        
if($error != "")
        {
            
$article_title "An Error Has Occurred!";
            
$article_content $error;
        }
        else
        {
            
//There has been no error, continue with the addition of the adoptable to the system...

            //First determine which image URL to use...

            
if($imageurl != "" and $existingimageurl == "none")
            {
                
$eggimage $imageurl;
            }
            else
            {
                
$eggimage $existingimageurl;
            }

            
runquery("INSERT INTO {$prefix}adoptables VALUES ('',  '{$name}', '{$class}'  ,'{$description}','{$eggimage}','{$cba}','{$promocode}', '{$freqcond}',  '{$number}','{$datecond}','{$date}','{$adoptscond}','{$maxnumcond}','{$morethannum}','{$usergroupcond}','{$usergroups}','{$alternates}','{$altoutlevel}','{$altchance}',  '{$cost}', '{$genderratio}')");  
            
// insert our level thing
            
runquery("INSERT INTO {$prefix}levels VALUES ('{$name}', '0', '0', '{$eggimage}','','','')");

            
$article_title "Adoptable Added Successfully";
            
$article_content "Your adoptable, {$name}, has been added to the database successfully. You can now <a href='admin.php?set=adopts&do=addlevel'>Add a Level</a> to this adoptable. You can also <a href='admin.php'>go back to the Admin CP index page</a>.";
        }
    } 
//This bracket ends the check of whether or not this user can access the adopts portion of the ACP
}
else
{
    
$article_title "Access Denied";
    
$article_content "Access Denied";
}

//***************//
//  OUTPUT PAGE  //
//***************//

echo showpage($article_title$article_content$date);

?>


Hall of Famer 09-13-2011 12:33 AM

umm I tested it myself on a new demo site, it works perfectly. Are you using Mys v1.2.3 or an older version?

RoconzaArt 09-13-2011 12:35 AM

The newest release.

Hall of Famer 09-13-2011 12:37 AM

umm I see, can you upload admin.php, nadopt.php and doadopt.php as attachments so I can further evaluate your issue?

RoconzaArt 09-13-2011 12:42 AM

3 Attachment(s)
Ok I'm sure I must have some how missed some thing.

Hall of Famer 09-13-2011 12:57 AM

umm I really cannot detect any issues here... The only difference I see from your database is that the column 'genderratio' is Yes Null. Can you set this value to be 'no' and give a try again?

RoconzaArt 09-13-2011 01:11 AM

No it still does not create the adoptable.

Hall of Famer 09-13-2011 01:34 AM

Well since you cannot create new adoptables, I am thinking about this way of debugging. Find this line in nadopt.php:

PHP Code:

            runquery("INSERT INTO {$prefix}adoptables VALUES ('',  '{$name}', '{$class}'  ,'{$description}','{$eggimage}','{$cba}','{$promocode}', '{$freqcond}',  '{$number}','{$datecond}','{$date}','{$adoptscond}','{$maxnumcond}','{$morethannum}','{$usergroupcond}','{$usergroups}','{$alternates}','{$altoutlevel}','{$altchance}',  '{$cost}', '{$genderratio}')"); 

Replace with:
PHP Code:

$query "INSERT INTO {$prefix}adoptables VALUES ('',  '{$name}', '{$class}'  ,'{$description}','{$eggimage}','{$cba}','{$promocode}', '{$freqcond}',  '{$number}','{$datecond}','{$date}','{$adoptscond}','{$maxnumcond}','{$morethannum}','{$usergroupcond}','{$usergroups}','{$alternates}','{$altoutlevel}','{$altchance}',  '{$cost}', '{$genderratio}')";
mysql_query($query) or die(mysql_error()); 

See what error message you get after this... Also it would be nice if you can tell me what other Mods you are using at the same time.

RoconzaArt 09-13-2011 01:46 AM

I did a fresh install and it seems there was a clash with one of Kaeliah's mods.

Hall of Famer 09-13-2011 01:55 AM

I see, so you did install other Mods? Are you saying it is working fine for you now? Anyway in future releases we will try to use plugin system with Mods and create new tables instead of modifying existing tables by adding/editing columns. This way the addons will at least not interfere with default features such as user registration, adoptables creation/adoption. You may have seen this from my evolution Mod, which is designed to be compatible with every Mod available.

RoconzaArt 09-13-2011 02:01 AM

The only other mods were her stats mod and her alternates mod.

Hall of Famer 09-13-2011 02:03 AM

I see, do you know which Mod is incompatible with my Gender Ratio script?

RoconzaArt 09-17-2011 11:03 PM

Is there a way to bring back the genderless class? I remember the old mod had it but it's not present here. I have a feeling I know how to do it but I'm afraid to try it.

Hall of Famer 09-18-2011 07:27 AM

Well this is definitely doable. If you have Gender Ratio Mod already, find these lines below:

PHP Code:

$tempgender rand(099);
if(
$tempgender $row['genderratio']) {
$gender "f";
unset(
$tempgender);
}
else {
$gender "m";
unset(
$tempgender);
}
runquery("INSERT INTO {$prefix}owned_adoptables VALUES ('',  '{$row['type']}', '$name','$loggedinname','0','0', '$code',  '','$alts','fortrade','no', '$gender','0')"); 

Replace with:
PHP Code:

$tempgender rand(099);
if(
$tempgender $row['genderratio']) {
$gender "f";
unset(
$tempgender);
}
else {
$gender "m";
unset(
$tempgender);
}
if(
$row['genderratio'] == 101$gender "Genderless";
runquery("INSERT INTO {$prefix}owned_adoptables VALUES ('',  '{$row['type']}', '$name','$loggedinname','0','0', '$code',  '','$alts','fortrade','no', '$gender','0')"); 


keliptis 02-13-2012 11:44 AM

I have an odd issue when I installed this mod now when i create a adopt and add alts it shows it as disabled all the time

All forms in the database for that are blank also I had to manually ad ENABLED to it and it seemed to work but whys it showing blanks and making it disable?

Hall of Famer 02-13-2012 04:29 PM

umm I dont think this script itself messes up with the alternate form generation code, unless you've copied/pasted the script in a wrong way that it overwrote the alternate image generation code. Can you show me what exactly is in your doadopt.php file? I guess this is the way to find a solution to your problem.

keliptis 02-14-2012 08:06 AM

I might have xD

*edited out*

Fangs 02-28-2012 10:54 AM

Works great, thank you!

Hall of Famer 02-28-2012 11:25 AM

Thats a nice attempt Keliptis, I am impressed.

keliptis 02-29-2012 10:36 AM

Im so sorry xD I cant believe i did the wrong one, ive been busy for a few days sgo

PHP Code:

<?php

include("inc/functions.php");

//***************//
//  START SCRIPT //
//***************//

$id $_GET["id"];
$promocode $_GET["promocode"];
$name $_GET["name"];

if(
$isloggedin == "yes"){
    if(
$_SESSION["allow"] != 1){
    
        
$article_title $err_idnoexist;
        
$article_content $err_idnoexist_text;
    }
    elseif(
$_SESSION["allow"] == 1){
    
        
// I guess the first thing to do is see if we have a valid adoptable ID submitted...
        
if($id == "" or !is_numeric($id)){
            
$article_title $err_idnoexist;
            
$article_content $err_idnoexist_text;
        }
        else{
            
// The adoptable ID appears to be valid, so we need to double check that it is valid by pulling up the adoptable in the DB

            
$query "SELECT * FROM {$prefix}adoptables WHERE id={$id}";
            
$result runquery($query);
            
$row mysql_fetch_array($result);

            if(
$id == $row['id']){
                
// The ID submitted matches an existing adoptable type
                
$canadopt canadopt($row['id'], "adopting"$promocode$row);

                
// If we can adopt this creature, do the adoption
                
if($canadopt == "yes") {
                    if (
changecash(-$row['cost'], $GLOBALS['loggedinname'], $GLOBALS['money'])==true) {                
                        
// BEGIN the actual adoption process

                        // First we see if we have a custom name; if not, we use the default name
                        
if($name == ""){
                            
$name $row['type'];
                        }

                        
// Now we determine if we are using alternate images or not

                        
$alts getaltstatus($id00);

                        
// We need a unique code for the adoptable so we can show it to the user when we're done here...

                        
$code rand(120000);
                        
$tempgender rand(099);
if(
$tempgender $row['genderratio']) {
$gender "f";
unset(
$tempgender);
}
else {
$gender "m";
unset(
$tempgender);
}
runquery("INSERT INTO {$prefix}owned_adoptables VALUES ('',  '{$row['type']}', '$name','$loggedinname','0','0', '$code',  '','$alts','fortrade','no', '$gender','0')");

                        
// Adoption complete, show the user a confirmation screen...

                        
$result runquery("SELECT * FROM {$prefix}owned_adoptables WHERE code='{$code}' and owner='{$loggedinname}'") ;
                        
$id=@mysql_result($result,0,"aid"); 

                        
$article_title $name." adopted successfully";
                        
$article_content "<img src='{$row['eggimage']}'><br>{$congrats1} {$name}.  You can now manage {$name} on the 
                        <a href='myadopts.php'>My Adopts</a> page.<br><br><b><a href='myadopts.php?act=manage&id=
{$id}'>Click Here to Manage {$name}</a><br>
                        <a href='myadopts.php?act=bbcode&id=
{$id}'>Click Here to get BBCodes / HTML Codes for {$name}</a></b><br><br>
                        Be sure and <a href='levelup.php?id=
{$id}'>feed</a> {$name} with clicks so that they grow!";
                        unset(
$_SESSION["allow"]);
                        
// END the actual adoption process
                    
}
                    else {
                        
$article_title "Not enough money.";
                        
$article_content "You don't have enough {$GLOBALS['settings']['cost']} to buy this adoptable. Earn some money and then try again.";
                    }
                }
                else {
                    
$article_title $accden;
                    
$article_content $adoptnoper;
                }
            } 
// End the if for if $id == $aid
            
else {
                
// Adoptable does not exist, show an error.

                
$article_title $err_idnoexist;
                
$article_content $err_idnoexist_text;
            } 
// End the else for if $id == $aid
        
// End the valid ID input else test statement (bulk of code goes above here)
    
}
// End the log in check IF
else {
    
// Guests cannot adopt pets, so why bother...
    
$article_title $guesttitleerror;
    
$article_content $guesterror;
// End the log in check ELSE 

//***************//
//  OUTPUT PAGE  //
//***************//

echo showpage($article_title$article_content$date);

?>


kristhasirah 03-29-2012 11:03 PM

Will you make this mod available for the new version?


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

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