Skocz do zawartości
blint

mySantos.pl | GitHub

Rekomendowane odpowiedzi

mdgVrZH.png

 

 

Cześć, w związku z tym, że zakończyliśmy działalność projektu mySantos postanowiłem wystawić całość pracy, którą włożyłem w rozwój serwera. Oczywiście wszystko zawarte w środku pozwala na momentalne uruchomienie serwera.

 

Próbowałem oczywiście opchnąć to za jakieś pieniądze, lecz nic z tego nie wyszło - prawdą jest, że to mapa na której uczyłem się pisać w PAWN; nie zamierzam jej już rozwijać, całość więc udostępniam w Wasze łapki, życzę tym samym owocnej pracy przy tworzeniu własnych projektów opartych o linijki tegoż skryptu!  ^_^

 

Oprogramowanie o którym mowa zaczęło powstawać w okolicach połowy października zeszłego roku, premiera wersji "beta" odbyła się około 10-15 stycznia br. - rzecz jasna startowałem od czystego new.pwn   ^_^

 

Przez cały okres aktywności mojej i reszty ekipy dodawaliśmy pomysły mniej lub bardziej innowacyjne przez co powstała tak unikalna mapa. Nie zauważono żadnych błędów na tyle poważnych by powodowały jakikolwiek problem w pracy serwera lub utrudniały rozgrywkę graczom. Swoją drogą posiada kilka ciekawostek takich jak optiwand dobrze znany ze SWAT, flashbangi i kilka innych.

 

Garstka informacji:

  • skrypt był testowany na maksymalnej ilości graczy ~70
  • nie posiada żadnych doraźnych luk
  • maksymalny uptime ~ 7 dni bez restartu mapy
  • każdy system jest stuprocentowo dynamiczny
  • skrypt oparty o system bazodanowy MySQL
  • przechodząc z wersji beta na stabilną oprogramowanie przeszło dość żmudny proces optymalizacji - mapa po skompilowaniu waży nieco ponad 2,6 MB, zapytania MySQL zostały ograniczone do wymaganego minimum

 

Zawarte systemy (te ważniejsze):

  • sys. pojazdów
  • sys. statystyk (siła/kondycja/strzelanie)
  • sys. przedmiotów
  • sys. obiektów (+ edytor In Game)
  • sys. grup 
  • sys. silników - modyfikowanie maksymalnej prędkości pojazdu
  • sys. sadzenia marihuany - trochę niedoskonały, polega na sadzeniu roślinki, która rośnie przez 48h
  • rozbudowany sys. zarządzania serwerem In Game (reloady / uprawnienia / administracja)
  • podstawowy AntyCheat - wymaga rozbudowy, lecz wychwytuje większość zielonych oszukistów   :rolleyes:

 

 

Kod źródłowy oprogramowania został podzielony na poszczególne moduły, więc edycja lub modyfikacja istniejącego kodu to rzecz banalna nawet dla osób, które stawiają swoje pierwsze kroki w skryptowaniu.

 

Co zawiera "produkt"?

  • cały kod źródłowy z wymaganymi bibliotekami
  • wsparcie z mojej strony w razie pytań
  • strukturę SQL wymaganą do akcji na danych

 

 

DOWNLOAD

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

new itemInfo[MAX_PLAYERS][MAX_PLAYER_ITEMS][itemParams];
 

Spore i całkiem niepotrzebne, skoro piszesz, że skrypt jest zoptymalizowany. 

 

pSID,			//samp id
 

Po co pobierać sampID gracza, skoro w większości funkcji i tak używasz playerid?

 

 

    pHasDowod,        //czy ma dowód osobisty
    pHasPrawkoA,    //motory
    pHasPrawkoB,    //auto
    pHasPrawkoC,    //ciezarowe
    pHasPrawkoCE,    //plus przyczepa i ciezarowe
    pHasPrawkoD,    //autobus
 

Bit / binarka to lepsze rozwiązanie :P

 

 

    pGMCars,
    pGMDoors,
    pGMGroups,
    pGMItems,
 

Podobnie jak wyżej. 

 

 

 

new SelectedItem[MAX_PLAYERS];
new PlayerWeapon[MAX_PLAYERS];
new NotatnikUID[MAX_PLAYERS];
new SelectedPhone[MAX_PLAYERS];
new Selected911[MAX_PLAYERS];                //który numer wybra³ z alarmowych
new LogTry[MAX_PLAYERS];
new Logged[MAX_PLAYERS];
new Kamizelka[MAX_PLAYERS];                    //kamizelka która ma na sobie ziom
new SendMoneyTo[MAX_PLAYERS];
new chatstat;
new PlayerDutyGroup[MAX_PLAYERS];
new AFK[MAX_PLAYERS];
new statusPlayer[MAX_PLAYERS];            //czy zmieni³ siê staus gracza
new DutyTimeToReduty[MAX_PLAYERS];
new ItemValue1[MAX_PLAYERS];
new ItemValue2[MAX_PLAYERS];
new ItemOwner[MAX_PLAYERS];
new ItemType[MAX_PLAYERS];
new SelectedAdminDoors[MAX_PLAYERS];
new SelectedVehicleItem[MAX_PLAYERS];
new DutyGroupType[MAX_PLAYERS];
new VehicleKogut[MAX_VEHICLES];
new IsPlayerHasFlashbang[MAX_PLAYERS];
new PlayerGID[MAX_PLAYERS];

.... i jeszcze więcej

 

 

Sporo tego, nie lepszym rozwiązaniem było zamieszczenie tego w tablicy PlayerCache / pInfo? Ogólnie, to przejrzałem troszkę kod i nie jest aż tak źle. Szacun, że to udostępniasz.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Uwierz mi, wszystko co jest wpisane w tym skrypcie zawiera również linijki, które były pisane jako pierwsze w moim życiu!  :D

A co do optymalizacji o której mówisz to skupiałem się głównie na zapytaniach generowanych do MySQL które zostały okrojone o dobre 60-70% 

 

 

Oczywiście zgodzę się co do uwag, które wymieniłeś - myślę, że kilka godzin przy tym skrypcie i poprawki własnie takich szczegółów mogą okroić ją z niepotrzebnych pierdółek.

Edytowane przez blint

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Gdzie to znajdę? Chciałbym się przyjrzeć. 

 

OnPlayerStateChange + speedcap.inc <- ale żeby to działało tak jak chciałem trzeba dopisać wzór obliczający konkretny speedcap do konkretnego pojazdu

Edytowane przez blint

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

no własnie wgrane są, a wywala bład, że nie moze odpalic gm'a

[18:57:06] Script[gamemodes/vliveb.amx]: Run time error 19: "File or function is not found"
[18:57:06] Number of vehicle models: 0

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

 

no własnie wgrane są, a wywala bład, że nie moze odpalic gm'a

[18:57:06] Script[gamemodes/vliveb.amx]: Run time error 19: "File or function is not found"
[18:57:06] Number of vehicle models: 0

 

 

Bo nie znajduje odpowiednich pluginów. Skonfiguruj pod system, na którym próbujesz to uruchomić. Pluginy bierz wedle #include ;) 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Mapka działa, połączenie z MySQL także, lecz jak wchodzę na serwer to wyskakuje okno Logowanie. Wpisuje hasło klikam enter i nic. Proszę o pomoc.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Mapka działa, połączenie z MySQL także, lecz jak wchodzę na serwer to wyskakuje okno Logowanie. Wpisuje hasło klikam enter i nic. Proszę o pomoc.

 

W bazie zostało pole char_password (?) - lub coś podobnego, odkąd skrypt został podlączony do IPB używa haseł z kont globalnych użytkowników, przypuszczam, że stąd Twój problem.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
 

 

własnie jak konto stworzyć, bo mam w tabelach mysantos i core_player i nie śmiga wywala, że złe hasło

 

 

 

W bazie zostało pole char_password (?) - lub coś podobnego, odkąd skrypt został podlączony do IPB używa haseł z kont globalnych użytkowników, przypuszczam, że stąd Twój problem.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Pomorze ktoś

[...]\Desktop\mapa\gamemodes\vliveb.pwn(11) : fatal error 100: cannot read from file: "mysql"

 

Wrzuć plik mysql.inc do folderu Include, który znajduje się w folderze z PAWNO.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Najlepiej sam se ściągnij, wtedy będą najpewniejsze.

Jeśli jakiś plugin nie działa, to prawdopodobnie brakuje jakiegoś dodatkowego składnika, typu .NET Framework czy libmysql.dll

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Skrypt nie potrzebuje paneli tylko czyta hasła do konta globalnego z forum ? Czyli że rejestruje się na forum pod które jest podpięty skrypt i wchodze na serwer z nickiem i hasłem z forum, a postać tworzę IG ? 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Skrypt nie potrzebuje paneli tylko czyta hasła do konta globalnego z forum ? Czyli że rejestruje się na forum pod które jest podpięty skrypt i wchodze na serwer z nickiem i hasłem z forum, a postać tworzę IG ? 

 

Postać musisz stworzyć w tabeli core_players, logujesz się na nicku postaci Imię_Nazwisko, hasło wpisujesz takie samo jak do konta globalnego na forum.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×