Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

xemont

Rekomendowane odpowiedzi

Opublikowano

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

1387979182-U1073075.png

Versus jest to doskonała podstawka dla osób które dopiero zaczynają programować, idealnie nadaje się na podstawkę pod grę klikaną.

Jest to bardzo prosty skrypt i zoptymalizowany, na którym bez problemu można stworzyć zaawansowana grę przegladarkowa.

1387979315-U1073075.png

Główne funkcje silnika

Niezalogowany:

-Strona główna

-Rejestracja

*Podział na klasy

-Logowanie

-Przypomnienie hasła

Zalogowany:

-Ustawienia konta ( zmiana emaila, hasła )

-trening postaci

-profile graczy

-ranking

-handlarz

-ekwipunek

-arena

-umiejętności

-gildia

-wyprawy

-poczta

Panel administratora:

-statystyka z ostatnich dni

-dodawanie nowego skilla
-dodawanie nowego przedmiotu
-dodawanie nowej wyprawy
-banowanie graczy
Skrypt korzysta z szybkiej bazy mysqli, ogólnie znajduje się w nim około 2.500 linijek kodu.

Aktualizacje

 

 

- urozmaicono system walk, umiejętności takie jak siła i zręczność nie wpływają na um ataku i obrony, są osobno brane pod uwagę, podczas każdej z rund
- zmieniono sposób pobierania profili, nie po id, lecz po loginie
- naprawiono błąd z pustym ciągiem znaków w loginie gracza
- naprawiono błąd z pustym ciągiem znaków w nazwie tworzonej gildii
- naprawiono błąd z pustym ciągiem znaków w przywracaniu hasła
- naprawiono błąd z pustym ciągiem znaków w zmianie hasła
- naprawiono błąd z pustymi ciągami znaków w wysyłanej PW
- dodano filtrowanie tematu wysyłanej PW
- dodano blokadę czatu zapobiegającą wysyłaniu pustych wiadomości
- dodano przechwytywanie błędu, gdyby po wyprawie miało dodać przedmiot, którego już nie ma
- ograniczono długość pojedyńczych wyrazów do max. 50 znakach
- identyfikacja zalogowanego gracza po wygenerowanym kluczu (nie po ID)
- dodanie do większości zapytań ograniczenia w postaci LIMIT 1
- blokada po bezpośrednim przejściu na www/szablon.php
- własne przekierowanie błędów serwera przy użyciu .htaccess

 

 

 

Wersja 1.5:

Dodano instalator, który poprowadzi Cię przez wszystkie etapy instalacji, utworzy konta administratorów oraz połączenie z bazą danych i inne potrzebne informacje. Dodatkowo, otrzymasz szczyptę informacji o Twoim serwerze.
Dodano funkcje do panelu administratora, która optymalizuje baze danych z nadmiaru.

 

 

 

 

Wersja 1.5.2:
- dodano animacje walki, akcje wyłaniają się stopniowo, a życie jest dynamicznie odejmowane. bardzo łatwo jest dodać dowolne efekty i animacje w js
- poprawiono raporty

 

 

 

 

Aktualizacja 1.6:
- poprawka instalatora
- ustawienie limitu posiadanych przedmiotów
- poprawka stronicowania rankingu
- poprawka wyświetlania tooltipa na różnych przeglądarkach

 

 

Aktualizacja 1.6.4.0:

- zmieniono układ bocznego menu
- poprawka w panelu adma
- poprawki bazy danych

 

 

 

 

Jak zainstalować skrypt?

1.Wrzucić wszystkie pliki na swój serwer

2.Wpisać adres swojej strony na której zostały zainstalowane pliki

3.Wypełnienie wszystkich kroków, przez które poprowadzi dynamiczny instalator.

4.Usunięcie katalogu /install

Jak dodać nową podstronę?

 

Aby utworzyć nową podstronę, wystarczy dodać plik PHP do głównego katalogu gry.
Każdy skrypt w Versusie ma swój szkielet, który opisze kolejno etapami.
1. Nadanie ustawień podstrony:

 

 

$podstrona = array('tytul' => 'Nazwa podstrony', 'konto' => false);
Tworzymy tablice $podstrona, która przechowuje takie wartości jak: tytuł - nazwa nowej podstrony oraz konto - false lub true, jeśli podstrona ma wymagać bycia zalogowanym.
2. Dołączenie jądra:

 

 

require_once './includes/system.php';

Plik system.php zawiera połączenie z bazą, a także podstawowe zadania silnika.

3. Załadowanie szaty graficznej:

 

require_once './www/szablon.php';

Plik szablon.php wybiera i wczytuje odpowiedni wygląd gry.
Do wyświetlenia na ekranie tekstu, użyjemy zmiennej $text, a w przypadku "pierwszoplanowych" komunikatów $msg.
Całość zaprezentujemy przykładowo tak:

 

<?php

$podstrona = array(
'tytul' => 'Nowa podstrona',
'konto' => false
);
require_once './includes/system.php';
$text = 'Witaj na nowo utworzonej podstronie!<br/>';
$msg = '<div class="error">Tak oto prezentuje się komunikat z błędem</div><br/>';
$msg = '<div class="pass">Teraz ujrzymy tekst na zielonym tle</div><br/>';
require_once './www/szablon.php';
?>

//Poradnik by Shady, mam pozwolenie na udostępnianie go gdzie tylko chce.

 

 

Demo

Kliknij tutaj

Login: mpcforum

Hasło: mpcforum1

SS'y

versus.jpg

 

1387979315-U1073075.png

1387981715-U1073075.png

1387981606-U1073075.png

1387979315-U1073075.png

Daj lubię to oraz napisz opinie

  • Odpowiedzi 56
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

Silnik bardzo mi się spodobał. Jest napisany w prostym języku i da się do niego łatwo dopisywać własne dodatki. Posiada dużo funkcji jak na darmowy silnik. Jednym słowem silnik idealny dla początkujących i zaawansowanych programistów. :D

Opublikowano

Silnik naprawdę porządnie zrobiony, świetna podstawka pod udaną grę i do nauki. Posiada też fajne rozwinięcie w postaci własnego działu na osobnym forum :P Na pewno trochę się tym pobawie, dzięki.

Opublikowano

 

Skrypt korzysta z szybkiej bazy mysqli, ogólnie znajduje się w nim około 2.500 linijek kodu.

 

mysqli to rozszerzenie php, a nie baza danych.

 

2.5k linijek i nie masz funkcji takich jak autoloader, funkcje (czy nawet całej klasy) do wyglądu?

 

 

I niestety muszę przyznać, że to pobrałem

 

- nie ma klasy do obsługi db -> struktura nie ma określonego schematu

- strasznie nieoptymalne zapytania do db

- "@new mysqli(" LOL WUT? Nawet w najbardziej gównianych videotutach jest mówione NIE używać @

* widzę nowy wynalazek "filter_var", nie, że to źle, ale przez to wymagasz najnowszej wersji php

- (w panelu admina) dane są filtrowane może w 10%, nigdy nie zakładaj, że admin sam sobie bazy nie rozwali

- "eval('$przedmioty = array('.$_POST['przedmioty'].');');" WAT?

- prefix (dla db) to tylko złudzenie, powinien być ustawiany w cfg i automatycznie dodawany, a nie przy każdym zapytaniu jest prefix_nTabeli

* jeśli hasło to char(40) to jak ty je kodujesz?

* nie wykorzystujesz relacji (to po co mysql)

- szablon to nie szablon (ale o tym już była mowa)

- skrypt js tworzący html napisany w php i wyświetlony przez szablon

- nie mogłeś się zdecydować co działa?

 

$_SESSION = array();

unset($_SESSION);
session_unset();
session_destroy();
- w walce (jeśli mnie wzrok nie myli) nie uwzględniłeś remisu (niby błaha rzecz, ale zaboli)
- już wiem jak wygląda hasło, sha1 można złamać w 1h
- mieszasz switch z if elseif elseif ... else (w dodatku nie lubię switch, obniża czytelność kodu i jest wolniejszy od batalii if-ów)
-

 

$_SESSION['kod'] = substr(uniqid(), -4); // wylosowanie 4 znakowego kodu

<td>kod zabezpieczający: ' . $_SESSION['kod'] . '</td>

 

Nie dość, że na tabelkach to taki sposób zabezpieczenia jest gorszy od żadnego. Serio. Prowokujesz, aby zrobić bota który zabije skrypt.

* "$_SESSION['player'] = md5($_SERVER['HTTP_USER_AGENT'] . uniqid() . time() . $_SERVER['REMOTE_ADDR']);" trochę przegięcie, ale nie szkodzi

+ nie filtrujesz hasła

+ za udostępnienie

- "stripslashes(" raz korzystasz z filter_var raz z innych

- "<center>"

- strukturalny kod

 

 

 

Pobieżnie przejrzałem wszystkie pliki ;)

Opublikowano
mysqli to rozszerzenie php, a nie baza danych.

 

tutejszy opis sporządzała osoba nie programująca w php ;)

 

2.5k linijek i nie masz funkcji takich jak autoloader, funkcje (czy nawet całej klasy) do wyglądu

to prosty silnik stworzony do nauki, gdzie tu autolader, a tym bardziej rzecz odpowiadająca za wygląd, jakiekolwiek wzorce jak choćby MVC etc.. o klasach nie ma mowy, jak na razie są zbyt trudne dla początkujących, trzeba im stopniowo przyswajać wiedzę, a samo słowo "class" byłoby dla nich zbyt ekstremalne jak na start ;)

 

"@new mysqli(" LOL WUT? Nawet w najbardziej gównianych videotutach jest mówione NIE używać @

chyba do całkowitego tłumienia błędów, a tutaj został wykorzystany, aby nie wyrzucać na ekran niepotrzebnych lub nawet niekorzystnych dla potencjalnego hakera informacji. patrz linijkę niżej, jest własna obsługa błędów dla tego połączenia.

widzę nowy wynalazek "filter_var", nie, że to źle, ale przez to wymagasz najnowszej wersji php

 

kolega to chyba jeszcze monitor CRT i myszkę z kulką posiada :D nie widzę żadnych zastrzeżeń, aby uczyć tego co nowe, a filter_var zostało wprowadzone dość dawno, bo już w php 5.2

 

(w panelu admina) dane są filtrowane może w 10%, nigdy nie zakładaj, że admin sam sobie bazy nie rozwali

no pewka :D admin z reguły słynie z tego, że jego zadanie polega na niszczeniu własnej gry :D bitch please, jaki admin atakowałby samego siebie? ;>

 

już wiem jak wygląda hasło, sha1 można złamać w 1h

haha, że co? :D sha1 to bezpieczna metoda, hashująca dane do 40 bitowego kodu, którego na pewno nie złamiesz w 1 godzinę :) dodatkowo do haseł stosowana jest sól, więc ta plotka, to chyba z md5 została wycięta :P

 

mieszasz switch z if elseif elseif ... else (w dodatku nie lubię switch, obniża czytelność kodu i jest wolniejszy od batalii if-ów)

od kiedy switch jest wolniejszy? :D bredzisz, switch to dużo wydajniejsza instrukcja do porównywania pojedyńczych zmiennych, niz cokolwiek innego w PHP

 

na resztę nie chce mi się odpowiadać, bo to nie po to temat :D masz strasznie nie pewne źródła, musisz chyba przestudiować ponownie web-dev :D

Opublikowano

Ty twierdzisz, że ja czegoś nie wiem lub podaję złe informację. Wybacz, wszyscy znają mnie tu jako hejtera wychwalającego się i swój projekt, ale jeszcze nikt nie zarzucił mi, że mówię źle.

 

Tam były +, - i *, a nie, że wszystko jest źle.

 

 

 

Cytat

już wiem jak wygląda hasło, sha1 można złamać w 1h
haha, że co? :D sha1 to bezpieczna metoda, hashująca dane do 40 bitowego kodu, którego na pewno nie złamiesz w 1 godzinę :) dodatkowo do haseł stosowana jest sól, więc ta plotka, to chyba z md5 została wycięta :P

 

http://aws.amazon.com/ec2/pricing/

Godzinka i twoje sha1 płacze. Żaden większy serwis nie korzysta już z sha1/md5. Stała sól również niewiele daje (jeśli ją znamy).

 

 

Cytat

mieszasz switch z if elseif elseif ... else (w dodatku nie lubię switch, obniża czytelność kodu i jest wolniejszy od batalii if-ów)
od kiedy switch jest wolniejszy? :D bredzisz, switch to dużo wydajniejsza instrukcja do porównywania pojedyńczych zmiennych, niz cokolwiek innego w PHP

 

Jest wolniejszy, a jak zwykle za moimi wypowiedziami stoją testy. Odpal jedno i drugie rozwiązanie x 1m to zobaczysz.

 

 

 

Cytat

(w panelu admina) dane są filtrowane może w 10%, nigdy nie zakładaj, że admin sam sobie bazy nie rozwali
no pewka :D admin z reguły słynie z tego, że jego zadanie polega na niszczeniu własnej gry :D bitch please, jaki admin atakowałby samego siebie? ;>

 

A co, może ręcznie mam sobie slashe dodawać? Tu chodzi o błąd, a nie 'hackowanie'

 

 

o klasach nie ma mowy, jak na razie są zbyt trudne dla początkujących

 

Przecież skrypt korzysta z mysqli, czyli podstawy obiektówki trzeba znać.

 

 

Cytat

"@new mysqli(" LOL WUT? Nawet w najbardziej gównianych videotutach jest mówione NIE używać @
chyba do całkowitego tłumienia błędów, a tutaj został wykorzystany, aby nie wyrzucać na ekran niepotrzebnych lub nawet niekorzystnych dla potencjalnego hakera informacji. patrz linijkę niżej, jest własna obsługa błędów dla tego połączenia.

 

set_error_handler()

error_reporting()

 

 

Cytat

widzę nowy wynalazek "filter_var", nie, że to źle, ale przez to wymagasz najnowszej wersji php
kolega to chyba jeszcze monitor CRT i myszkę z kulką posiada :D nie widzę żadnych zastrzeżeń, aby uczyć tego co nowe, a filter_var zostało wprowadzone dość dawno, bo już w php 5.2

 

Nie napisałem, że to wada

Opublikowano

Mam pytanie xD gdy zakoncze wyprawę wyskakuje mi coś takiego:

Notice: unserialize(): Error at offset 15 of 24 bytes in C:\xampp\htdocs\versus\wyprawy.php on line 8

Warning: array_keys() expects parameter 1 to be array, boolean given in C:\xampp\htdocs\versus\wyprawy.php on line 9

Warning: shuffle() expects parameter 1 to be array, null given in C:\xampp\htdocs\versus\wyprawy.php on line 10

Wiecie co nie tak i jak naprawić? Skoro tutaj się tak kłócicie o kod tego silnika, to może naprawicie ten kod :D (to z tego silnika) xD

klklgv.jpg
Opublikowano

Mam pytanie xD gdy zakoncze wyprawę wyskakuje mi coś takiego:

Notice: unserialize(): Error at offset 15 of 24 bytes in C:\xampp\htdocs\versus\wyprawy.php on line 8

Warning: array_keys() expects parameter 1 to be array, boolean given in C:\xampp\htdocs\versus\wyprawy.php on line 9

Warning: shuffle() expects parameter 1 to be array, null given in C:\xampp\htdocs\versus\wyprawy.php on line 10

Wiecie co nie tak i jak naprawić? Skoro tutaj się tak kłócicie o kod tego silnika, to może naprawicie ten kod :D (to z tego silnika) xD

Prawdopodobnie ta wyprawa ma zdefiniowany przedmiot, którego nie ma w bazie danych :P Lub nie ma w ogóle zdefiniowanych przedmiotów.

Opublikowano

@foxbond - no co do klas to wiadomo ,początkujący to tak jak powiedział shady834 może ich wystraszyć. Dlatego jeśli chodzi o początkujących to jest + ,że jest ten kod napisany strukturalnie.

Z kolei tym new mysqli.... no to fakt wtedy to jest debilizm bo trzeba znać mimo to podstawy obiektówki jak mówisz ,ale można zastosować przecież tak napisany kod mysqli by odwoływać się do funkcji ,a nie do obiektu ;).

 

Z kolei nie wiem czy mysqli to nie jest za daleko. Większość kursów jakie są teraz dostępne w necie bazują na mysql ,a mysql i mysqli w funkcjach nieco się różnią.

 

Co do sha - no można złamać, swoją drogą md5 też można złamać bo są strony ,które mają ogromne bazy z różnymi hashami. Zawsze pozostają tęczowe tablice ,ale z kolei dodanie odpowiedniej soli eliminuje to rozwiązanie i pozostaje nam metoda trafu lub Brute Force (Choć nie wiem czy właśnie nie strzeliłem głupoty co do Brute Force).

 

Co do reszty to się nie wypowiem ,bo albo wyczerpany temat ,albo nie znam się ,ale mam pytanie co do tego:

 

 

Godzinka i twoje sha1 płacze. Żaden większy serwis nie korzysta już z sha1/md5. Stała sól również niewiele daje (jeśli ją znamy).

Z czego w takim razie korzystają jak to mówisz "większe serwisy"? Oraz czy hasło md5 jest bezpieczne jeśli jest sól, bo moim zdaniem jest bezpieczne ;).

Opublikowano

Powiem, że gra ma urok swojej prostoty, ale byłaby ciekawsza jakby były dodane jakieś animację, nawet najmniejsze.

Co do kodu, patrzałem tylko powierzchownie i nie widzę jakiś wielkich błędów, ale jakieś kosmetyczki się znajdą.

 

Bardzo fajna praca :)


k4L2ZMS.png

Opublikowano

Skrypt bardzo ładnie się prezentuje, sama grafika jest zajebista :)

Widać dużo pracy zostało włożone oraz wszystko robione z pomysłem ;)

Opublikowano

Oprawa graficzna oraz moźliwosci silnika mi sie podobają, jednak mógłbyś wprowadzić jakieś urozmaicenia typu koło fortuny.

Pomagam w tworzeniu for IPB za darmo. Trzy letnie doświadczenie.

Opublikowano

Oprawa graficzna nie jest najważniejsza w silniku. Ważne, że jest idealny dla początkujących. Grafiki zazwyczaj robi się swoje, a nie zostawia domyślne ;]

Pamiętajmy że to jest podstawka, a resztę możemy dorobić sami.

 

Pozdrawiam! ;]

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...