Zwiększ popularność strony w toplistach
Jeśli posiadacie grę www możecie w łatwy sposób zwiększyć jej popularność w toplistach dzięki prostemu skryptowi. Skrypt ten umożliwia wypłacanie graczom ekwiwalentów za klikanie w topki.
Jeśli w grze mamy coś co graczom potrzebne jest do szczęścia: energia, ptk ruchu itd., możemy dać śladowe ilości tego graczom w zamian za kliknięcie w topkę.
W Kronikach Fallathanu rozdaję za kliknięcie energię, przy czym mam to powiązane jeszcze z linkami referencyjnymi, dzięki którym można ilość zdobywanej energii podnieść.
Aby zacząć podnosić swoją pozycję w topkach potrzebny jest nam plik glosuj.php w którym umieścimy nasze skrypty. Do tego pliku wklejamy kod Javascript:
if (empty($_SESSION['voter'])) $_SESSION['voter'] = md5('tajny_hash'.time());
print "
<script type=\"text/javascript\">
function control_click(click_, url, vote) {
childW = window.open(url,'childW','width=980, heigth=1000, status=no, scrollbars=yes, resizable=yes, location=yes, dependent=yes');
cur_click = click_;
if(vote==1 || vote==2 || vote==3) {
frm = 0;
setTimeout(\"while_loading();\",100);
}
}
function while_loading() {
var bocik = '123456789012345678901234567890';
if(!childW.closed) {//window.closed
frm =frm+1;
setTimeout('while_loading();',100);
} else {
if(frm<40) {
alert('Musisz zagłosować i zaczekać aż strona ci się załaduje.');
} else {
var bocik = '".$_SESSION['voter']."';
document.location = \"vote.php?glos=\"+cur_click+\"&bot=\"+bocik;
}
}
}
</script>
";
Następnie trzeba będzie wyświetlić nasze linki do klikania:
$i = 1;
while ($i < 4)
{
$topka = $db -> EXECUTE("SELECT * FROM votes WHERE owner=".$player -> id." AND vote_id=".$i." LIMIT 1");
if (!$topka -> fields['id'] && $i == 1) print "<p></p>";
if (!$topka -> fields['id'] && $i == 2) print "<p></p>";
if (!$topka -> fields['id'] && $i == 3) print "<p></p>";
$topka -> Close();
$i = $i + 1;
}
Do tego dodajemy kod, który odpowiada za dodanie graczowi bonusów oraz oznaczenie jego głosu:
if (isset($_GET['glos']))
{
if (!ereg("^[1-9][0-9]*$", $_GET['glos'])) error("Wpisz cyfrę");
if (empty($_GET['bot'])) error("Nie oszukuj");
$_GET['bot'] = strip_tags($_GET['bot']);
if (strlen($_GET['bot']) != 32) error("Nie oszukuj");
if ($_GET['bot'] != $_SESSION['voter']) error("Nie oszukuj");
$arrvotes = array(1,2,3,4,5,6,7,8,9,10,11);
if (!in_array($_GET['glos'],$arrvotes)) error("Nie ma takiej toplisty");
$vote = $db -> EXECUTE("SELECT id FROM votes WHERE owner=".$player -> id." AND vote_id=".$_GET['glos']." LIMIT 1");
if (!$vote -> fields['id'])
{
$db -> EXECUTE("UPDATE players SET energy=energy+".$gain_energy." WHERE id=".$player -> id." LIMIT 1");
$db -> EXECUTE("INSERT INTO votes (owner,vote_id) VALUES (".$player -> id.",".$_GET['glos'].")");
print 'Głosowale¶, otrzymujesz '.$gain_energy.' energii. Dziękujemy!<a href=vote.php>Wróć</a>';
unset($_SESSION['voter']);
header("LOCATION:vote.php");
exit;
}
else print 'Już głosowałe¶ na tę toplistę dziękujemy za promocję gry mimo wszystko :) <a href=vote.php>Wróć</a>';
$vote -> Close();
unset($_SESSION['voter']);
header("LOCATION:vote.php");
exit;
}
Ostatnim krokiem jest dodanie do bazy danych tabeli, która przetrzymuje informacje o tym czy ktoś głosował:
CREATE TABLE `votes` (
`id` int(11) NOT NULL auto_increment,
`owner` int(11) NOT NULL default '0',
`vote_id` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1;
To wszystko, możemy cieszyć się z rosnącej pozycji w topkach.