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.

Plik ze skryptem.