PDA

View Full Version : Abandon system


bokkun
12-24-2009, 09:56 AM
Hey, I'm bokkun and...
let's me skip the introduction for now and give what you came for.
In dragon cave you can abandon your dragons and have someone else adopt it, instead of killing them, It looked me interesting to have such a system to save those poor virtual lifes ;)
I am not a great php programmer however, I tried my best, and accept critic.
The script is supposed to remove the kill ability, but it's possible to simply have both.

first of all, we need a new table in the database to save our abandoned adoptables:
CREATE TABLE IF NOT EXISTS `adopts_abandoned` (
`aid` int(11) NOT NULL auto_increment,
`type` varchar(40) default NULL,
`name` varchar(40) default NULL,
`owner` varchar(40) default NULL,
`currentlevel` int(11) default NULL,
`totalclicks` int(11) default NULL,
`code` int(11) default NULL,
`imageurl` varchar(120) default NULL,
`usealternates` varchar(10) default NULL,
`tradestatus` varchar(15) default NULL,
`isfrozen` varchar(10) default NULL,
`date` varchar(30) default NULL,
PRIMARY KEY (`aid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;It's pretty much a copy of the owned table, but with an additional field date

now, put the creature in there, open myadopt.php
and look for $act == "kill"
scroll a bit down till you find
$aid=@mysql_result($result,$i,"aid"); //The adoptable's ID
$currentlevel=@mysql_result($result,$i,"currentlevel");
$type=@mysql_result($result,$i,"type");
$name=@mysql_result($result,$i,"name");
$totalclicks=@mysql_result($result,$i,"totalclicks");
$isfrozen=@mysql_result($result,$i,"isfrozen");since we need way more data,replace it with:
$aid=@mysql_result($result,$i,"aid"); //The adoptable's ID
$currentlevel=@mysql_result($result,$i,"currentlevel");
$type=@mysql_result($result,$i,"type");
$owner=@mysql_result($result,$i,"owner");
$name=@mysql_result($result,$i,"name");
$totalclicks=@mysql_result($result,$i,"totalclicks");
$isfrozen=@mysql_result($result,$i,"isfrozen");
$code=@mysql_result($result,$i,"code");
$usealternates=@mysql_result($result,$i,"usealternates");
$tradestatus=@mysql_result($result,$i,"tradestatus");
$date=time('U');scroll down till you find $query = "DELETE FROM ".$prefix."owned_adoptables WHERE aid='$id' and owner='$loggedinname'";
this is where it gets removed, but we don't want that, replace with
mysql_query("INSERT INTO ".$prefix."abandoned VALUES ('$aid', '$type', '$name','$owner', '$currentlevel', '$totalclicks', '$code', '', '$usealternates', '$tradestatus', '$isfrozen', '$date')");
mysql_query("DELETE FROM ".$prefix."owned_adoptables WHERE aid='$id' and owner='$loggedinname'");
change the text a bit to fit the abandon process(as well in myadopts.php as in lang.php)
and that's it... ow wait where can we find our creatures? and don't forget you have to be able to adopt them
There are 2 attachments included, abandon.php(is like adopt.php but for the abandoned pets) and doadoptab.php(like doadopt.php to adopt our abandoned friend.)

abandon.php uses
$article_title = $ashowingtitle;
$article_content = $ashowing;
don't forget to put that in your lang.php,
and neither should you forget to add the link

another think in abandon.php is that it checks if the creature has been there for more than 2 weeks, if so it gets removed, forever!
to change that look for $decay=time() - 14 * 24 * 60 * 60;
and change 14 * 24 * 60 * 60 to fit your needs(14 is more or less how many days it are)
to remove the auto-delete thing, you can remove the
if($date < $decay){ //check if the creature is too the abandoned database
//yes it is, time to remove it
$removed="yes";
mysql_query("DELETE FROM ".$prefix."abandoned WHERE aid='$aid' and name='$name'");
}


I forgot to say abandon uses an edited function script
simply add this at the end of function.php, else you can't see the pet image
function getabandonedimage($id){

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

include("config.php"); // This is so we can use the table prefix

$image = "";

// First we select the adoptable from the database and get some basic information...

$query = "SELECT * FROM ".$prefix."abandoned WHERE aid='$id'";
$result = mysql_query($query);
$num = mysql_numrows($result);

//Loop out code
$i=0;
while ($i < 1) {

$type=@mysql_result($result,$i,"type");
$currentlevel=@mysql_result($result,$i,"currentlevel");
$imageurl=@mysql_result($result,$i,"imageurl");
$usealternates=@mysql_result($result,$i,"usealternates");


$i++;
}

if($imageurl != ""){

// If we are using a custom image for this adoptable, use that
$image = $imageurl;

}
else{

// We have to dig this up ourselves...
// Check if we are using an egg image or a level image...

if($currentlevel == 0 or $currentlevel == "0"){

// Let's see what the egg image is...

$query = "SELECT * FROM ".$prefix."adoptables WHERE type='$type'";
$result = mysql_query($query);
$num = mysql_numrows($result);

//Loop out code
$i=0;
while ($i < 1) {

$eggimage=@mysql_result($result,$i,"eggimage");


$i++;
}

$image = $eggimage; // Set the image URL equal to the egg image...

}
else{

// We have to find out what level we are using...
// Then we can choose the appropriate image for what we are using...

$query = "SELECT * FROM ".$prefix."levels WHERE adoptiename='$type' and thisislevel='$currentlevel'";
$result = mysql_query($query);
$num = mysql_numrows($result);

//Loop out code
$i=0;
while ($i < 1) {

$primaryimage=@mysql_result($result,$i,"primaryimage");
$alternateimage=@mysql_result($result,$i,"alternateimage");


$i++;
}

// If alternate images are enabled and an alternate image exists, use it

if($usealternates == "yes" and $alternateimage != ""){

$image = $alternateimage; // Use the alternate image

}
else{

$image = $primaryimage; // Set the image equal to the primary image for the level

}



}

}

if($type == "" or $image == ""){
// We did not settle on an image, so we show an error image...

$image = "http://".$domain."".$scriptpath."/templates/icons/delete.gif";

}

return $image;

}

function canadoptab($aid, $cond, $promocode){

include("config.php");

// This function determines if a user can adopt a specific adoptable...

$canadopt = "yes"; // The default status is that we CAN adopt, unless proven false...

// The first thing we check is that we are logged in

$loginstatus = logincheck();
$isloggedin = $loginstatus[loginstatus];
$loggedinname = $loginstatus[username];

if($isloggedin != "yes" and $cond != "showing"){
$canadopt = "no";
}

// Now we check if our usergroup has permission to adopt the adoptable...

$group = getgroup();
$dbcanadpt = cando($group, "canadopt");

if($dbcanadpt != "yes" and $cond != "showing"){
$canadopt = "no";
}
return $canadopt;

}
Update: the abandon.php and doadoptab.php script are reuploaded, they're edited to work correctly with the function above

This script is not compatible with a gender mod
if you use one a few additions will have to be made:
find in abandon.php
$aid=@mysql_result($result,$i,"aid"); //The adoptable's ID
$currentlevel=@mysql_result($result,$i,"currentlevel");
$type=@mysql_result($result,$i,"type");
$owner=@mysql_result($result,$i,"owner");
$name=@mysql_result($result,$i,"name");
$totalclicks=@mysql_result($result,$i,"totalclicks");
$isfrozen=@mysql_result($result,$i,"isfrozen");
$code=@mysql_result($result,$i,"code");
$usealternates=@mysql_result($result,$i,"usealternates");
$tradestatus=@mysql_result($result,$i,"tradestatus");
$date=date('Y-m-d');
$eggimage = getabandonedimage($aid);add at the end
$gender=@mysql_result($result,$i,"gender");

to show the gender:
go a little down till you see $article_content = $article_content."<br><img src='".$eggimage."' border='0'><br>
add between that and <form name='form1' method='get' action='doadoptab.php'> this:
<b>Gender: </b>".$gender."<br>
That shows the gender to people who will get there abandoned pet
next (more importantly) go to adoptab.php
find
mysql_query("INSERT INTO ".$prefix."owned_adoptables VALUES ('', '$type', '$name','$loggedinname','$currentlevel','$totalcli cks', '$code', '','$usealternates','$tradestatus','$isfrozen')");
replace with
mysql_query("INSERT INTO ".$prefix."owned_adoptables VALUES ('', '$type', '$name','$loggedinname','$currentlevel','$totalcli cks', '$code', '','$usealternates','$tradestatus','$isfrozen','$g ender')");

find a bit above $eggimage=getabandonedimage($aid);
and add again
$gender=@mysql_result($result,$i,"gender");
that should do it for that file.
but we aren't done

in the code above(in file myadopts.php) you'll see
$date=time('U');
add $gender=@mysql_result($result,$i,"gender");
then find
INSERT INTO ".$prefix."abandoned VALUES ('$aid', '$type', '$name','$owner', '$currentlevel', '$totalclicks', '$code', '', '$usealternates', '$tradestatus', '$isfrozen', '$date')");
replace with
mysql_query("INSERT INTO ".$prefix."abandoned VALUES ('$aid', '$type', '$name','$owner', '$currentlevel', '$totalclicks', '$code', '', '$usealternates', '$tradestatus', '$isfrozen', '$date','$gender')");

well that looks good, but it won't work if you don't add in the table adopts_abandoned a new field gender (with the same options as the gender field from the owned_adoptables)

Arianna
12-24-2009, 10:51 AM
That sounds nice. I might make a few edits, but I'll probably be testing this. x3

SieghartZeke
12-24-2009, 04:15 PM
OMG Work in my site!!!
Thank you for this great Mod!!!
And im waiting for the currency and the shop....
But a little thingy... I add the little code in my lang.php but i don't show text...
can i add in the abandone.php page???

bokkun
12-25-2009, 07:30 AM
You added it in $ashowing(title)?
an example of my test server:
$ashowingtitle = "Abandoned pets";
$ashowing = "These poor pets are dumped by their master, they still are looking for a new home. If you have some extra place in your pet collection, please help these guys out.<br>";

( doadoptab.php uses the same lang as doadopt.php since there is no real need to change the text)

of course you can always add the text to the page itself, lang.php is just to make changing texts easier(for when you make a language mod for example)

mapleblade
12-25-2009, 01:18 PM
wow nice! ill test it as soon as i can :D i was waiting for this feature!!!!!! like the adoptable pound on pokeplushies! nice work!!!!

Ashje
12-25-2009, 04:47 PM
Looks great. Imma try it out soon. XD

SleepWalker
12-26-2009, 06:55 AM
I wanna to try out.

Ashje
12-27-2009, 07:26 PM
Wait, so this isn't compatible with the gender mod?

anjwalker
12-27-2009, 08:25 PM
it is but you have to add the extra stuff at the end
This script is not compatible with a gender mod
if you use one a few additions will have to be made:
find in abandon.php

PHP Code:

$aid=@mysql_result($result,$i,"aid"); //The adoptable's ID
$currentlevel=@mysql_result($result,$i,"currentlevel");
$type=@mysql_result($result,$i,"type");
$owner=@mysql_result($result,$i,"owner");
$name=@mysql_result($result,$i,"name");
$totalclicks=@mysql_result($result,$i,"totalclicks");
$isfrozen=@mysql_result($result,$i,"isfrozen");
$code=@mysql_result($result,$i,"code");
$usealternates=@mysql_result($result,$i,"usealternates");
$tradestatus=@mysql_result($result,$i,"tradestatus");
$date=date('Y-m-d');
$eggimage = getabandonedimage($aid);

add at the end
$gender=@mysql_result($result,$i,"gender");

to show the gender:
go a little down till you see $article_content = $article_content."<br><img src='".$eggimage."' border='0'><br>
add between that and <form name='form1' method='get' action='doadoptab.php'> this:
<b>Gender: </b>".$gender."<br>
That shows the gender to people who will get there abandoned pet
next (more importantly) go to adoptab.php
find
mysql_query("INSERT INTO ".$prefix."owned_adoptables VALUES ('', '$type', '$name','$loggedinname','$currentlevel','$totalcli cks', '$code', '','$usealternates','$tradestatus','$isfrozen')");
replace with
mysql_query("INSERT INTO ".$prefix."owned_adoptables VALUES ('', '$type', '$name','$loggedinname','$currentlevel','$totalcli cks', '$code', '','$usealternates','$tradestatus','$isfrozen','$g ender')");

find a bit above $eggimage=getabandonedimage($aid);
and add again
$gender=@mysql_result($result,$i,"gender");
that should do it for that file.
but we aren't done

in the code above(in file myadopts.php) you'll see
$date=time('U');
add $gender=@mysql_result($result,$i,"gender");
then find
INSERT INTO ".$prefix."abandoned VALUES ('$aid', '$type', '$name','$owner', '$currentlevel', '$totalclicks', '$code', '', '$usealternates', '$tradestatus', '$isfrozen', '$date')");
replace with
mysql_query("INSERT INTO ".$prefix."abandoned VALUES ('$aid', '$type', '$name','$owner', '$currentlevel', '$totalclicks', '$code', '', '$usealternates', '$tradestatus', '$isfrozen', '$date',$gender)");

well that looks good, but it won't work if you don't add in the table adopts_abandoned a new field gender (with the same options as the gender field from the owned_adoptables)

SieghartZeke
12-28-2009, 03:05 AM
Omg...You are from MYadopts!!!And you are so much great with coding!! *_*

Ashje
12-28-2009, 03:56 PM
it is but you have to add the extra stuff at the end


Thanks :D

fadillzzz
01-23-2010, 09:56 AM
please re-upload the attachment

bokkun
01-28-2010, 09:56 AM
done, re-uploaded the attachments, was there something wrong then?

Tequila
01-28-2010, 10:10 AM
done, re-uploaded the attachments, was there something wrong then?


Brandon moved servers, lots of attachments were lost.

fadillzzz
01-29-2010, 09:17 AM
I just tried it, but it didn't worked...
I opened the abandon page, but the page doesn't show any adoptables...
I checked the abandoned table and it doesn't have any records in it (the abandoned adoptables from the owned_adoptables table are deleted, not inserted into the abandoned table)

how do I fix this?

fadillzzz
02-03-2010, 03:16 AM
Bump...
need more info on how to fix it...

Roconza
02-04-2010, 02:52 PM
Small question, for some reason when i added a gender field to my database it stops dumping abandoned adoptables? As soon as a remove the gender field from adopts_abandoned it starts working again.

Szymon
02-06-2010, 02:24 PM
Fatal error: Call to undefined function: getabandonedimage() in /var/www/sites/yoyo.pl/o/t/otal/abandon.php on line 100 what's wrong?

ok, works ;D
my mistake;D

bokkun
02-12-2010, 10:31 AM
sorry, I didn't check the forums quite a while
fadillzzz, I think you haven't changed the kill action in myadopts.php correctly
Roconza, you should edit the codes when you add genders, at the end of the topic it says what to do when you add genders
Szymon, that spares me some typing...

fadillzzz
02-13-2010, 01:20 AM
I'm pretty sure that I've change the code correctly but it's still doesn't work

Roconza
02-13-2010, 07:16 PM
All the code is followed like it's posted here and I even went through it twice. All the code works fine until I add the gender field to the database.

-DefaulT
02-23-2010, 05:20 PM
Thanks, i was scripting it myself and ran into a couple bugs that yours help me fix.

densaugeo
03-02-2010, 03:20 PM
I added this as per your instructions as well and I have the same problem, the abandon page does not show any adoptables.

SieghartZeke
03-25-2010, 12:47 PM
There is a code that when the Abandon system is empty of pet say:
There are no pets here! Try to come back tomorow!

gensuperman
03-28-2010, 01:09 PM
Well, I tried to install it, and I couldn't get it to work.

Although, I got half of it to work, the other half just gives errors.

Here are the steps I followed:

- SQL Query > Added new database information as required by original post in this thread.
- opened myadopts.php, replaced $aid information with longer information after the kill area in the script
- overwriten remove query with 2 lines as per post.
- added abandon information at the end of the functions.php script
- added ashowingtitle and ashowing to language file.
- uploaded by abandon.php file and doadobtab.php to the folder

Tested it and only half of it worked.

See, when you this is all installed, you go to kill your pet, and then you choose yes.

Your pet is then sent to the abandon.php area. Which the abandoned pet does show up, but it only shows the picture of the pet and not any details about the pet.

When you click on the pet in the abandon pet to adopt, it asks if you want to rename the pet, and to put in a name in the box field under the image... However, there is NO box field for name input. That is missing.

When you go to click adopt me, it gives a congratulations screen, but all the links are wrong and it gives errors whenever you click on any link on the congratulations page for adopting and abandoned pet.

For example:


On the congratulations screen for adopting a pet, you might see :

Original pets name Adopted successfully

click here to manage this pet


But, when you click to manage your new pet, it just leads to a link :


http://www.yourwebsite.com/pets/myadopts.php?act=manage&id=


Then if you do click on that, it will come up with a page error:


Invalid Adoptable ID Specified

The ID specified does not match any adoptable in our system. Sorry. If you wish, you can adopt a pet.


Lastly, the abandoned pet does not show up in the "myadopts" page, so now, the pet is gone forever.

So... what did I do wrong? Is there someone that actually got this script to work and if they did, could you please PM me or respond back this post with the steps that you took to get it to work.

Thanks

redheadturkey
03-30-2010, 06:38 PM
ditto! :D :D


This could likely be modified to be used as a way to send pets to a "for sale" section!

I'd love to hear from someone who has it working too, so we know how to use it as well?

redheadturkey
04-03-2010, 09:18 AM
Figured it out myself, and this is one really great mod!!

It's basically a problem of the rows, the way they are aligned, and making sure $gender comes before date:

here's what I have now in my adopts for "kill"


$aid=@mysql_result($result,$i,"aid"); //The adoptable's ID
$currentlevel=@mysql_result($result,$i,"currentlevel");
$type=@mysql_result($result,$i,"type");
$owner=@mysql_result($result,$i,"owner");
$name=@mysql_result($result,$i,"name");
$totalclicks=@mysql_result($result,$i,"totalclicks");
$isfrozen=@mysql_result($result,$i,"isfrozen");
$code=@mysql_result($result,$i,"code");
$usealternates=@mysql_result($result,$i,"usealternates");
$tradestatus=@mysql_result($result,$i,"tradestatus");
$gender=@mysql_result($result,$i,"gender");
$date=@mysql_result($result,$i,"date");
$lastbedtime=@mysql_result($result,$i,"lastbredtime");
$mother=@mysql_result($result,$i,"mother");
$father=@mysql_result($result,$i,"father");


and then:


// Actually run the execution



mysql_query("INSERT INTO ".$prefix."sales VALUES ('$aid', '$type', '$name','$owner', '$currentlevel', '$totalclicks', '$code', '', '$usealternates', '$tradestatus', '$isfrozen', '$gender', '$date','$lastbredtime', '$mother', '$father')");
mysql_query("DELETE FROM ".$prefix."owned_adoptables WHERE aid='$id' and owner='$loggedinname'");

mysql_query($query);



I am using Arianna's breeding system and so I have a few extras at the end. The main thing is be sure that gender is indicated on everything BEFORE the date! Otherwise it's all out of whack!

Just do this for everything, and be sure to add the gender field in the actual new table too ( I think I had to add it in ) - make sure it's in the right order too!

This works for me now, and just go through anything pertaining to this output and insertion, make sure all your ducks are in the right row, lol.

****Oh, and please note I am using the word SALES as opposed to ABANDONED for my Table --- just use whatever you like I guess, but for you at first that will be Adopts_Abandoned!

redheadturkey
04-03-2010, 10:51 AM
To have it show more stuff before you finalize the adoption or sale, find this in abandon.php:


$article_content = $article_content."<br><img src='".$eggimage."' border='0'><br>
<b>Gender: </b>".$gender."<br>


replace with ( your own additional listings )



$article_content = $article_content."<br><img src='".$eggimage."' border='0'><br>
<b>Gender: </b>".$gender."<br>
<b>Name: </b>".$name."<br>
<b>Status: </b>".$totalclicks."<br>
<b>Price: </b>".$price."<br>

fadillzzz
04-04-2010, 09:22 AM
then find
INSERT INTO ".$prefix."abandoned VALUES ('$aid', '$type', '$name','$owner', '$currentlevel', '$totalclicks', '$code', '', '$usealternates', '$tradestatus', '$isfrozen', '$date')");
replace with
mysql_query("INSERT INTO ".$prefix."abandoned VALUES ('$aid', '$type', '$name','$owner', '$currentlevel', '$totalclicks', '$code', '', '$usealternates', '$tradestatus', '$isfrozen', '$date','$gender')");



you forgot to put the apostrophe symbol on $gender which is why some user having trouble finding their adoptables in the abandon.php page
(nothing was inserted to the abandoned table)

bokkun
04-06-2010, 08:06 AM
yes indeed, thanks, I fixed it

Sorry for being off all the time, I don't manage an adoptable site, so only when I remember about it I come to visit this site...

@redheadturkey: It's true, if you had the gender mod earlier than this mod, $gender and $date are at the wrong place
I added the gender mod later...

@gensuperman: I'm sorry but I think it's something you saw over, I can't see the problem in my code...
However you are right with the fact that only the image shows up, I removed the extra info on my adopt.php page
and the abandon.php is a modified version of that.
try to find out how to add it back again or I'll explain later... Sorry

Also gensuperman, it's the text defined in lang.php, I saw over it
add in your lang.php under wherever you put $ashowingtitle and $ashowing this
$alanga1 = "You are adopting ";
$alanga2 = ". <br>When you're ready to adopt this Adoptable, click on the <i>Adopt Me</i> button below.";

go to abandon.php and look for $langa1 and $langa2 and change them into $alanga1 and $alanga2

for the rest, recheck the code and correct me if I made another mistake, I will try fix it...

Hall of Famer
11-16-2010, 10:19 PM
Well yeah, it is not really hard to integrate this with gender system, the only issue is with the structure of own_adoptable table, which can be easily modified.