Skocz do zawartości

Ranking


Popularna zawartość

Treść z najwyższą reputacją w 14.07.2015 uwzględniając wszystkie działy

  1. 1 punkt
    AxL_

    Multi A/D

    Multi A/D Wersja 2.0.4 Multi A/D jest jednym z niewielu, zwłaszcza polskich gamemodów, do gry w trybie A/D (Attack/Defence). Swoje początki miał w okolicach roku 2009'tego. Były to czasy coraz większej popularności trybu A/D, oraz coraz większej konkurencji wśród gamemodów pozwalających na grę "na bazy". Mimo starzenia się oraz powstawania nowych gamemodów, Multi A/D przez długi czas utrzymywał się w czołówce, aż w końcu został wyparty i na długi czas został zapomniany. Dziś chcę zaprezentować nową wersję, oznaczoną numerem "2". Domyślam się, że wszyscy czytający ten temat mieli do czynienia z tym trybem, więc w jak największym skrócie postaram się przybliżyć o co chodzi. Tryb "Atak/Obrona" jest trybem do gry klanowej. Aktualnie w Polsce istnieje ponad 25 klanów, dzięki którym możemy z pierwszej ręki poznać jak się gra "na bazy". Podstawowe zasady gry są bajecznie proste. Mecz odbywa się między dwoma drużynami, najczęściej złożonymi z 4-5 graczy. W każdej rundzie, na przemian, jedna drużyna broni umownej bazy (np. statek w porcie LS - baza 39), druga atakuje. Aby wygrać należy zabić wszystkich graczy drużyny przeciwnej lub, w zależności od ustawienia, przejąć checkpoint, co polega na odczekaniu kilku-kilkunastu sekund we wskazanym miejscu. W każdym meczu gra się nieparzystą ilość rund. Ostatnia jest grana w trybie "Arena". Dwie drużyny stają naprzeciw siebie na ustalonym polu walki, bez możliwości spawnowania pojazdów i zaczynają walkę, aby ostatecznie pokazać kto jest lepszy. Jest to oczywiście tylko zarys trybu A/D i aby w pełni go poznać, trzeba na nim pograć. Kiedy sam aktywnie grałem, był to w mojej opinii jeden z najlepszych trybów jakie powstały w SA-MP'ie. Nie pozwalał na nudę i monotonię, ciągle coś się działo. Jako przykład, zademonstruję grę w trybie "Arena" podczas jednej z naszych klanówek, na której nieco nagięliśmy zasady: Sam gamemod, który widać w tle jest poprzednikiem pierwszej wersji Multi A/D. Do dziś zasady gry w trybie A/D jak i same gamemody, a właściwie wymogi co do nich, uległy pewnej zmianie. Czy na lepsze, czy na gorsze - trudno powiedzieć. Zostawiam to do indywidualnej oceny. Co nowego w wersji "2" - wszystko. Cały gamemod został napisany od nowa, uwzględniając nowości, których nie było w czasach "Jedynki". Oprócz tego wszystkie wyniki rozegranych spotkań są przesyłane na stronę WWW, dzięki czemu mamy możliwość szybkiego wstawiania obrobionych wyników gry. Jako przykład, prezentuję wynik "Świątecznego Eventu - Administracja konta Gacze ~ HighSkill.eu" rozegranego na tym modzie w wersji 2.0.1: http://mad.highskill.eu/match.php?id=20 http://mad.highskill.eu/match.php?id=20&type=players Gamemod rozrósł się także pod względem możliwości indywidualnych ustawień oraz ułatwień dla administratora. Trudno mi je opisać, ponieważ dla wielu mogą się wydawać niczym niezwykłym, jednak biorąc pod uwagę perspektywę czasu od daty wydania "Jedynki", są one zupełną nowością. Nie ukrywam, że w tym przypadku najlepszym rozwiązaniem jest samodzielne poznanie gamemodu i jego możliwości. Wszystkie komendy oraz ustawienia można poznać za pomocą dwóch podstawowych komend: '/pomoc' - dla zapoznania się z najważniejszymi funkcjami oraz '/cfg' - żeby zobaczyć wszystkie edytowalne części gamemoda. Domyślam się jednak, że po pobraniu plików, pierwszym co będziesz chciał zrobić to zobaczyć jak się na tym gra. Potrzebujesz do tego jeszcze co najmniej jednej osoby, która dołączy do przeciwnej drużyny. Kiedy już będziecie gotowi, wystarczy zalogować się na "RCON'a" i wpisać komendę "/sb [iD Bazy (np. 39) lub brak parametru (losowa baza)]" do wystartowania bazy, lub "/sa [analogiczne parametry jak przy 'sb']" dla wystartowania areny. Jeśli zdecydujecie się na bazę, po wyborze broni pierwszą zagadką dla atakującego będzie "jak mam dostać się do bazy skoro tu nie ma pojazdów?". Do spawnowania pojazdów służy komenda "/car [iD modelu, nazwa lub część nazwy pojazdu lub brak parametru]". Po wszystkim wystarczy jechać w kierunku ikony flagi na radarze i odbić bazę. W miarę gry polecam zapoznać się ze wszystkimi komendami gamemoda (cmd: /pomoc) oraz ustawieniami (/cfg). Ostatnią opcją, którą warto poznać na początku jest możliwość "Specowania" czyli obserwowania kolegów grających w rundzie. Jeśli na serwerze gra więcej osób i runda nie kończy się po Twojej śmierci, będziesz miał możliwość podglądania jak radzą sobie członkowie Twojej drużyny, za pomocą komendy "/spec". Na koniec prezentuję dwa screeny: http://highskill.eu/downloads/MAD_1.png http://highskill.eu/downloads/MAD_2.png Download MultiAD 2.0.4 (R-1) - Kompilacja 30 graczy Uwagi końcowe Wszystkie pliki z folderów w paczce należy wrzucić do odpowiadających im na serwerze. Gamemod używa pluginu "Sscanf", jednak jest to tak popularny plugin, że chyba nie muszę tłumaczyć jak go włączyć na serwerze. Oczywiście jego plik w wersji ".so" znajduje się w paczce. Ostatnią ważną uwagą jest to, że gamemod wymaga wersji serwera SA-MP 0.3z R-2 lub wyższej. Najnowszą wersję SA-MP'a oznaczoną symbolem "R-4" można pobrać z tej strony: http://forum.sa-mp.com/showthread.php?t=531302 Info. dot autora i projektu Wersja 2.0.2 prawdopodobnie nie jest ostatnią wersją gamemoda. Najnowsze wersje będą zawsze umieszczane na oficjalnym forum projektu, pod adresem www.HighSkill.eu. Można tam również zgłaszać wszelkie napotkane błędy oraz sugestie, do czego gorąco zachęcam. Autorem gamemoda jestem ja (Rafał (AxL) Żółtański) i jako taki zezwalam na dowolne z niego korzystanie z wyjątkiem nadużywania modułu HTTP. Nadużywanie tej funkcji może doprowadzić do zablokowania odbioru danych z serwera (oznacza to jedynie brak możliwości generowania wyników spotkań w postaci screenów, takich jak ten przedstawiony na początku). Jednak jestem pewny, że w trakcie normalnego korzystania z gamemoda nie zdarzy się taka sytuacja. Dziękuję
  2. 1 punkt
    PrzMas

    Multi Konta

    Niezależnie czy poprzez ustawienie w tabeli właściwości UNIQUE dla pola z adresem ip czy też sprawdzanie przy rejestracji czy dany adres ip nie figuruje już w bazie dla innego konta to nadal pozostaje problem z braćmi (o tym samym ip rzecz jasna, ale w tym przypadku to już nie multikonto) xD Dla braci mogą występować poniższe uwarunkowania: - jednakowe ip, ten sam komputer, to samo konto użytkownika, - jednakowe ip, ten sam komputer, osobne konto użytkownika - jednakowe ip, osobny komputer, konto nie istotne. Przez chwilę pomyślałem o funkcji gpci(), ale nie sprawdzi się ona, gdy bracia będą korzystali z tego samego komputera i konta użytkownika. Można dodać pole 'active' i gdy podczas rejestracji okaże się, że dany adres ip jest już przypisany dla innego konta to wówczas pole 'active' będzie ustawiane np na 0 (konto nieaktywne). Z nieaktywnego konta nie będzie można korzystać dopóki nie aktywuje go administrator.
  3. 1 punkt
    dawid4157

    Multi Konta

    SELECT `ip` FROM `users` Potem sprawdzasz czy pobrane ip istnieje w bazie. Jeśli istnieje to wyświetl komunikat.
  4. 1 punkt
    PaweL

    Problem z pluginem mysql.so

    To już nie jest wina pluginu. Masz źle wprowadzone dane bazy i nie idzie się połączyć. Łączysz się do swojej lokalnej bazy (localhost)?
  5. 1 punkt
    PaweL

    Problem z pluginem mysql.so

    Spróbuj bez sudo na początku. sudo to komenda, która wykonuje dane polecenie jako root, a skoro już jesteś zalogowany jako root (i nie masz w ogóle komendy sudo), to nie będzie ci ona potrzebna.
  6. 1 punkt
    PaweL

    [MySQL]AUTO_INCREMENT

    Posiłkując się rozwiązaniem stąd: http://stackoverflow.com/a/6935648 ALTER TABLE tablename DROP id ALTER TABLE tablename ADD id INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (id), AUTO_INCREMENT=1Osobiście nie radziłbym ci zmieniać tych wszystkich id jeśli używasz ich jako referencji w innych tabelach, ale w normalnym przypadku droga wolna.
  7. 1 punkt
    PrzMas

    [MySQL]AUTO_INCREMENT

    Na pewno będzie UPDATE + SELECT + ORDER BY - ale to kiepski sposób, ten przedstawiony przez PaweL jest lepszy. Nie znam struktury twojej bazy, ale zazwyczaj unikalnych pól używa się do kojarzenia tabel (INNER/LEFT/RIGHT JOIN), tak więc jeżeli pozmieniasz te uid to będziesz mieć dziury w bazie (jeżeli pole, które chcesz zmienić jest skojarzone z inną tabelą).
  8. 1 punkt
    PaweL

    Problem z pluginem mysql.so

    Ściągnij następujący plik na VPS poleceniem wget wget http://ftp.pl.debian.org/debian/pool/main/m/mysql-5.1/libmysqlclient16_5.1.73-1_i386.deb Następnie w folderze do którego ściągnąłeś ten plik wykonaj to polecenie sudo dpkg -i libmysqlclient16_5.1.73-1_i386.deb W ten sposób zainstalujesz bibliotekę libmysqlclient wymaganą do działania pluginu MySQL i powinno już być ok.
  9. 1 punkt
    Nortal

    [ROZWIĄZANY]Problem z komendą local chat!

    Usuń 'new string[144];' bądź też nadaj zmiennej inną nazwę. Błąd oznacza, że zmienna, została zdefiniowana już gdzieś wyżej.
  10. 1 punkt
    KDK ZamDragon

    Przebieg pojazdu.

    Pobierasz co sekundę prędkość i przez timera aktualizujesz ją - to co napisałeś! - Wyświtlasz to w texdrawie, czy w czym chcesz..... - Jeżeli pytasz co dalej, to proszę powiedz, o co dokładniej ci chodzi - o aktualizację texdrawa, zrobienie go, czy co? - to pomogę.........
  11. 1 punkt
    RosolZKurWielu

    Przebieg pojazdu.

    Zadziała, za każdym razem będzie dodawało 1 do przebiegu. Przebieg najlepiej robić jako float przynajmniej według mnie. Wtedy według pobranej prędkości pojazdu dodawać odpowiednio przebieg, dzięki obliczeniu.
  12. 1 punkt
    Exive Group (c

    Bw przy spawnie

    Kolejny pseudol na zbugowanym story-rp? Rozwiązanie miałeś na pierwszych stronach na innym forum. Ale masz (liczę na like): public OnPlayerSpawn(playerid) { StopAudioStreamForPlayer(playerid); SetPlayerHealth(playerid, 100); dDodajHP(playerid, 100); if(PlayerInfo[playerid][pBW]!=0) { dDodajHP(playerid,100); dHP[playerid]=100; } pFunkcje(playerid, 3); pFunkcje(playerid, 5); TextDrawHideForPlayer(playerid, Logowanie); Attach3DTextLabelToPlayer(pNick[playerid], playerid, 0.0, 0.0, 0.2); TextDrawHideForPlayer(playerid, Textdraw1); TextDrawHideForPlayer(playerid, Textdraw2); Zalogowany1[playerid]=true; PlayerPlaySound(playerid, 1077, 0.0, 0.0, 10.0); Zalogowany[playerid]=true; ResetPlayerWeaponsEx(playerid); if(GetPVarInt(playerid, "zarejestrowany")==1) { SetPVarInt(playerid, "zarejestrowany", 0); Tip(playerid, "Przez pierwszą godzinę gry będziesz mógł bezpłatnie zmienić ubranie w Binco."); Tip(playerid, "Jako nowy gracz otrzymujesz na dobry początek 500$."); TextInfoDrzwi(playerid,"~y~~r~OSIAGNIECIE~n~~g~Pierwsze zalogowanie ~n~~b~+10GS",10); Global[playerid][gGS]+=10; dDodajKase(playerid,500); GlobalSave(playerid); } if(GetPVarInt(playerid, "zapiszbronie")==1) { ResetPlayerWeaponsEx(playerid); SetPVarInt(playerid, "UzywaBron",0); UzywaBron1[playerid]=0; UzywaBron2[playerid]=0; } SetPlayerWalkingStyle(playerid,PlayerInfo[playerid][pStyl]); SetPlayerFightingStyle(playerid,PlayerInfo[playerid][pStylWalki]); //skile SetPlayerSkillLevel(playerid, 0, 0); SetPlayerSkillLevel(playerid, 1, 0); SetPlayerSkillLevel(playerid, 2, 1000); SetPlayerSkillLevel(playerid, 6, 0); if(PlayerInfo[playerid][pHP]==0){ PlayerInfo[playerid][pHP]=9; } dUstawHP(playerid,PlayerInfo[playerid][pHP]); SetPVarInt(playerid, "zapiszbronie", 0); if(Global[playerid][gAJ]>=1) { SetPlayerPos(playerid,GameMode[uJailPosX],GameMode[uJailPosY],GameMode[uJailPosZ]); SetPlayerVirtualWorld(playerid,PlayerInfo[playerid][pUID]+66); GameInfo(playerid,"~r~admin jail",1); return 1; } if(PlayerInfo[playerid][pJail]>=1) { Unfreeze(playerid,5); Info(playerid, "Czas Twojego przetrzymywania nie dobiegł jeszcze końca.\nAby sprawdzić ile czasu pozostało Ci do końca sprawdź statystyki."); SetPlayerVirtualWorld(playerid,TeleInfo[PlayerInfo[playerid][pSpawnID]][tWyjscieVir]); SetPlayerPos(playerid,PlayerInfo[playerid][pPosJailX],PlayerInfo[playerid][pPosJailY],PlayerInfo[playerid][pPosJailZ]); return Unfreeze(playerid,5); } if(PlayerInfo[playerid][pBW]>=1) { SetPlayerPos(playerid,PlayerInfo[playerid][pPosX],PlayerInfo[playerid][pPosY],PlayerInfo[playerid][pPosZ]); SetPlayerVirtualWorld(playerid,PlayerInfo[playerid][pVir]); TogglePlayerControllable(playerid,0); PlayerInfo[playerid][pHP]=100; SetTimerEx("Animka",1000,0,"dd",playerid,1); return 1; } if(GetPVarInt(playerid, "death") == 1) { SetPlayerPos(playerid, P[playerid][0], P[playerid][1], P[playerid][2]); SetPVarInt(playerid, "death", 0); dHP[playerid]=9; PlayerInfo[playerid][pBW]=0; SendClientMessage(playerid, DEATH, "Zostajesz zespawnowany w miejscu, w którym twoja postać się zabiła."); Unfreeze(playerid,2); return 1; } switch(PlayerInfo[playerid][pSpawn]) { case 0://standardowy { SetPlayerPos(playerid,GameMode[uSpawnX],GameMode[uSpawnY],GameMode[uSpawnZ]); SetPlayerVirtualWorld(playerid,GameMode[uVir]); return 1; } case 1: { new nr=PlayerInfo[playerid][pSpawnID]; SetPlayerPos(playerid,TeleInfo[nr][tWyjscieX],TeleInfo[nr][tWyjscieY],TeleInfo[nr][tWyjscieZ]); SetPlayerVirtualWorld(playerid,TeleInfo[nr][tWyjscieVir]); SetPlayerInterior(playerid,TeleInfo[nr][tintekw]); Unfreeze(playerid,5); GameInfo(playerid,"~n~~n~~n~~n~~w~(Lewy ALT + SPACE)~n~~y~Aby wyjsc",3); return 1; } } return 1; } Powinno działać.
  13. 1 punkt
    ReveresPL

    Problem z zegarem!!!

    Powinien sie usunac jezeli nie masz skryptow dodanych do konfingu z paczki sampa i jezeli robisz gm'a od zera i tak wyzej napisana funkcja powinna pomoc jak faktycznie sie pokazuje sam z siebie ... :O
  14. 1 punkt
    PrzMas

    Problem z zegarem!!!

    W OnPlayerConnect() albo OnPlayerSpawn() TogglePlayerClock(playerid, false); [link]
  15. 1 punkt
    DaGaXeR

    Przebieg pojazdu.

    Chodziło Ci ogólnie o system przebiegu, czy system liczenia przebiegu?
  16. 1 punkt
    KoPcIu

    Zakładka serwery i jej bezsens (subiektywna ocena)

    System reklamy zostanie zmieniony w Urodzinowej aktualizacji, w jaki sposób? Niestety trzeba będzie poczekać, bo koncepcji jest kilka Pozdrawiam!
  17. 1 punkt
    AxL_

    Multi A/D

    No niestety wyciągnięcie linku HTTP jest dość prostym zadaniem i nawet nie trzeba sprawdzać ".amx", bo Kalcor w jednej wersji zapomniał usunąć debuga z serwera ;x Dlatego też na samej stronie jest ograniczenie przyjmowania "zgłoszeń", a do opisu dodałem zdanie, że działanie polegające na fabrykowaniu zgłoszeń, może doprowadzić do blokady przyjmowania danych z serwera. W każdym razie ".pwn" nie udostępniam z kilku powodów. Głównym jest to, że spędziłem nad tym na prawdę sporo czasu i nie chciałbym, żeby po dniu czy dwóch ktoś edytował sobie textdrawy, zmienił kilka linijek kodu, przekierował HTTP na swój serwer i twierdził, że ta praca uprawnia go do zmiany autora. A co do Premium Air, to ono jest dostępne w ".pwn" z tym, że trzeba zapłacić chyba 100 zł. Nie pamiętam dokładnie, ale coś koło tego.
  18. 1 punkt
    DMCy

    Zabezpieczenia dla OnDialogResponse

    Lepiej pytać w starych tematach niż bez sensu pisać nowe :D
×