Skip to content

Reflinki

by matergames on Marzec 17th, 2009

W wielu grach występują tzw. „reflinki” – ktoś kliknie na specjalny link to któryś gracz dostaje jakieśtam niewielkie bonusy typu 5$/ileśtam szacunku itp.
Przy czym warto ustawić aby dany gracz mógł otrzymać tylko raz na 24h profity od danej osoby.
To zabieramy się do roboty :)
Tworzymy sobie taką tabelę w bazie:

CREATE TABLE `ref` (
`kiedy` int(11) NOT NULL,
`ip` varchar(15) NOT NULL,
`user` varchar(20) NOT NULL
)

Kiedy – to pole odpowiada za czas (time()) – czyli kiedy dana osoba weszła na ten link
Ip – IP delikwenta
User – nick/można oczywiście użyć id usera na którego konto wpłyneły profity

<?php
//Po odpowiednim przefiltrowaniu pobieramy dane gracza z bazy
if($istnieje==0){
echo('Taki gracz nie istnieje!');
$blad++;
}
if($_SESSION["logged"]==TRUE){
if($info[0]==$_SESSION["login"]){
echo('Nie mozesz atakowac samego siebie!');
$blad++;
}
}
if($blad==0){
$p = time() - 86400;
//Czasami w ten sposób można oszukać proxy, ale tylko czasami..
if ($_SERVER['HTTP_X_FORWARDED_FOR']) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];} else { $ip = $_SERVER['REMOTE_ADDR']; }
//Sprawdzamy czy z takiego IP ktoś w ciągu ostatnich 24 godzin wchodził na reflinka tej osoby
if($byl==0){
$now = time();
mysql_query("INSERT INTO ref VALUES ('$now','$_SERVER[REMOTE_ADDR]','$info[0]')");
//Wyświetlamy informacje do usera, mówiącą co właśnie się stało
echo('{nick gracza} sprzatnął/eła Cię i w dodatku zgarnął/eła 50 dolarów!');
$kasa = $info[1] + 50;
mysql_query("UPDATE players SET kasa=$kasa WHERE nick='$info[0]'");
}else{echo($info[0].' załatwił cie w ciagu ostatnich 24 godzin. Tym razem da Ci spokój');
}
}
?>
Podziel się:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • MySpace
  • Twitter
  • Add to favorites
  • Blip
  • Flaker
  • Grono
  • Kciuk.pl
  • LinkedIn
  • Live
  • Slashdot
  • Śledzik
  • Wykop
No comments yet

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS