Dzisiaj przedstawię sposób jak zrobić konto testowe do swojej gry. Odwiedzajacy grę, będą mogli przetestować sobię grę, bez konieczności założenia nowego konta na twojej grze. U mnie zminimalizowało to ilość powstałych kont, które są zaraz po zarejestrowaniu porzuczne!
Domyślne ustawienia:
E-Mail: test@test.pl
Hasło: Test1
To konto ma wiele opcji zablokowanych. Nie może np. zmienić hasła i maila!
Dobra, przejdźmy do opisu jak zrobić takie konto. Nie jest to skomplikowane.
Na początek edytujemy plik updates.php . Tutaj damy opcje, aby zaraz po zalogowaniu się opcje konta zostały ustawione na standardowe.
Zaraz po :
$title = "Wie¶ci";
require_once("includes/head.php");
Umieszczmy takiego ifa:
if ($player -> rank == "Tester") {
$db -> Execute("UPDATE players SET age=0 where id=5");
$db -> Execute("UPDATE players SET user='Tester' where id=5");
$db -> Execute("UPDATE players SET opis='Testuję grę' where id=5");
$db -> Execute("UPDATE players SET level=1 where id=5");
$db -> Execute("UPDATE players SET exp=0 where id=5");
$db -> Execute("UPDATE players SET credits=3500 where id=5");
$db -> Execute("UPDATE players SET energy=60 where id=5");
$db -> Execute("UPDATE players SET max_energy=0 where id=5");
$db -> Execute("UPDATE players SET strength=3 where id=5");
$db -> Execute("UPDATE players SET agility=3 where id=5");
$db -> Execute("UPDATE players SET ap=35 where id=5");
$db -> Execute("UPDATE players SET platinum=75 where id=5");
$db -> Execute("UPDATE players SET hp=15 where id=5");
$db -> Execute("UPDATE players SET max_hp=15 where id=5");
$db -> Execute("UPDATE players SET bank=0 where id=5");
$db -> Execute("UPDATE players SET ability=0.01 where id=5");
$db -> Execute("UPDATE players SET tribe=0 where id=5");
$db -> Execute("UPDATE players SET profile='Proszę, nie zwracać uwagi na mnie! Jestem tu tylko tymczasowo
w celu przetestowania gry. Jeżeli spodoba mi się ona, to zarejestruję się!' where id=5");
$db -> Execute("UPDATE players SET refs=0 where id=5");
$db -> Execute("UPDATE players SET tribe=0 where id=5");
$db -> Execute("UPDATE players SET tribe=0 where id=5");
$db -> Execute("UPDATE players SET age=5");
$db -> Execute("UPDATE players SET rasa='' where id=5");
$db -> Execute("UPDATE players SET klasa='' where id=5");
$db -> Execute("UPDATE players SET ineteli=0 where id=5");
$db -> Execute("UPDATE players SET atak=0.01 where id=5");
$db -> Execute("UPDATE players SET unik=0.01 where id=5");
$db -> Execute("UPDATE players SET magia=0.01 where id=5");
$db -> Execute("UPDATE players SET szyb=3 where id=5");
$db -> Execute("UPDATE players SET wytrz=3 where id=5");
$db -> Execute("UPDATE players SET alchemia=0.01 where id=5");
$db -> Execute("UPDATE players SET shoot=0.01 where id=5");
$db -> Execute("UPDATE players SET fletcher=0.01 where id=5");
$db -> Execute("UPDATE players SET maps=0 where id=5");
$db -> Execute("UPDATE players SET gotowanie=0 where id=5");
$db -> Execute("UPDATE players SET stan='Wolny' where id=5");
}
Pamiętaj o zmianie wartości bo mogą one być inne w Twojej grze. U mnie sa takie... :)
Teraz wchodzimy do bazy danych poprzez phpMyAdmin'a. Teraz będziemy dodawać konto testera...
Tak więc wchodzimy w naszą bazę danych gdzie mamy dane gry. Wchodzimy do tabeli players a następnie wybieramy 'Dodaj'. I zmieniamy tylko :
Id na 5
User na Tester
email na test@test.pl
pass na e1b849f9631ffc1829b2e31402373e3c (powinno to być nasz Test1)
rank na Tester
I resztę rzeczy standardowo pozostawiamy w spokoju i klikamy na 'Wykonaj'! :)
Jeżeli chcesz mieć inne id tej postaci to dajesz do tabeli inne id Testera i przede wszystkiim zmieniasz w upadates.php końcówkę każdego db na:
where id='wybrany id'
gdzie 'wybrany id' to twój numerek... :)
Teraz przechodzimy do account.php.
Tutaj teraz ustawimy ograniczenia dla pewnych funkcji z opcji gracza.
Będzie to bardzo proste bo znowu dodajemy tylko jednego if'a:
if ($player -> rank == "Tester") {
error ("Posiadasz konto testowe. Opcja ta jest dla Ciebie zablokowana!");
}
Czyli np. blokada resetu postaci w całości będzie wyglądała tak:
// reset postaci
if (isset ($_GET['view']) && $_GET['view'] == "reset") {
if (isset ($_GET['step']) && $_GET['step'] == 'make') {
$code = rand(1,1000000);
if ($player -> rank == "Tester") {
error ("Posiadasz konto testowe. Opcja ta jest dla Ciebie zablokowana!");
}
$message = "Dosta3e¶ ten list poniewa? chcia3e¶ zresetowaa postaa. Je?eli nadal pragniesz zresetowaa
swoj± postaa na ".$gamename." (".$player -> user." ID: ".$player -> id.") wejd1 w ten link
".$gameadress."/preset.php?id=".$player -> id."&code=".$code." Je?eli jednak nie chcesz resetowaa postaci
(b±d1 kto¶ inny za ciebie zg3osi3 tak± chea) wejd1 w ten link ".$gameadress."/preset.php?id=".$player
-> id." Pozdrawiam Thindil";
$adress = $_SESSION['email'];
$subject = "Reset konta gracza na ".$gamename;
require_once('mailer/mailerconfig.php');
if (!$mail -> Send()) {
error("Wiadomo¶a nie zosta3a wys3ana. B3±d:
".$mail -> ErrorInfo);
}
$db -> Execute("INSERT INTO reset (player, code) VALUES(".$player -> id.",".$code.")") or error("nie
moge wykonaa zapytania");
}
}
Dla zmiany hasła będzie to tak wyglądało:
// zmiana hasła do konta
if (isset($_GET['view']) && $_GET['view'] == "pass") {
if (isset($_GET['step']) && $_GET['step'] == "cp") {
if ($player -> rank == "Tester") {
error ("Posiadasz konto testowe. Opcja ta jest dla Ciebie zablokowana!");
}
if (empty ($_POST['np'])) {
error ("Wype3nij wszystkie pola.");
}
if (empty ($_POST['cp'])) {
error ("Wype3nij wszystkie pola.");
}
require_once('includes/verifypass.php');
verifypass($_POST['np'],'account');
$_POST['np'] = str_replace("'","",strip_tags($_POST['np']));
$_POST['cp'] = str_replace("'","",strip_tags($_POST['cp']));
$db -> Execute("UPDATE players SET pass = MD5('".$_POST['np']."') WHERE pass = MD5('".$_POST['cp']."') AND
id=".$player -> id);
$_SESSION['pass'] = $_POST['np'];
error ("Zmieni3e¶ has3o z ".$_POST['cp']." na ".$_POST['np']);
}
}
// edycja profilu
if (isset($_GET['view']) && $_GET['view'] == "profile") {
require_once('includes/bbcode.php');
$profile = htmltobbcode($player -> profile);
$smarty -> assign ("Profile", $profile);
if (isset($_GET['step']) && $_GET['step'] == "profile") {
if (empty ($_POST['profile'])) {
error ("Wype3nij wszystkie pola.");
}
require_once('includes/bbcode.php');
$_POST['profile'] = bbcodetohtml($_POST['profile']);
$db -> Execute("UPDATE players SET profile = '".$_POST['profile']."' WHERE id = '".$player -> id."'");
$smarty -> assign ("Profile",$_POST['profile']);
}
}
i jeszcze w edycji e-maila to umieszczamy:
// edycja maila oraz numeru gg
if (isset($_GET['view']) && $_GET['view'] == 'eci') {
if (empty($player -> gg)) {
if ($player -> rank == "Tester") {
error ("Posiadasz konto testowe. Opcja ta jest dla Ciebie zablokowana!");
} [/b] $player -> gg = '';
}
$smarty -> assign("GG", $player -> gg);
if (isset($_GET['step']) && $_GET['step'] == "gg") {
if (!ereg("^[0-9]*$", $_POST['gg'])) {
error ("Zapomnij o tym");
}
$query= $db -> Execute("SELECT id FROM players WHERE gg='".$_POST['gg']."'");
$dupe = $query -> RecordCount();
$query -> Close();
if ($dupe > 0 && $_POST['gg'] != 0) {
error ("Kto¶ ju? posiada taki adres gadu-gadu.");
}
$db -> Execute("UPDATE players SET gg=".$_POST['gg']." WHERE id=".$player -> id) or error ("Nie mog
dodaa");
error ("Zmieni3e¶ numer gadu-gadu na ".$_POST['gg']."
");
}
if (isset($_GET['step']) && $_GET['step'] == "ce") {
if (empty ($_POST["ne"])) {
error ("Wype3nij wszystkie pola.");
}
if (empty ($_POST["ce"])) {
error ("Wype3nij wszystkie pola.");
}
require_once('includes/verifymail.php');
if (MailVal($_POST['ne'], 2)) {
error("Nieprawid3owy adres email.");
}
if ($player -> rank == "Tester") {
error ("Posiadasz konto testowe. Opcja ta jest dla Ciebie zablokowana!");
}
$query = $db -> Execute("SELECT id FROM players WHERE email='".$_POST['ne']."'");
$dupe = $query -> RecordCount();
$query -> Close();
if ($dupe > 0) {
error ("Kto¶ ju? posiada taki adres email.");
}
$db -> Execute("UPDATE players SET email = '".$_POST['ne']."' WHERE email = '".$_POST['ce']."' AND id =
'".$player -> id."'") or error ("Z3y mail");
error ("Zmieni3e¶ adres e-mail z ".$_POST['ce']." na ".$_POST['ne'].". Zamknij to okno przegl±darki
i zaloguj sie ponownie.");
}
}
Możecie umieścić pogrubionego if'a wszędzie gdzie chcecie ograniczyć dostęp do danej funkcji... :) Tylko pamiętajcie
w jakim miejscu go umieścić! Pokazałem wam powyżej 3 przykłady, które na 100% działają dobrze,
więc wniosek wyciągnijcie sami!
Tak więc byłoby to na tyle! :) Wkrótce postaram się dać kilka innych artykułów. Jeśli ktoś wzoruje się na
mojej metodzie to fajnie by było żeby umieścił bannera tej strony! Nawet musisz!!! :)
Pozdrawiam,
Revolas
PS: Zaprezentowana metoda na pewno działa w Vallheru 0.7! :) Tak więc wszystko zostało dokładnie
przetestowane. Jeżeli masz problem to pisz w komantarzach. :)