Fajny kod. Na pewno długo ci zajęło jego napisanie
Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Robiin
Rejestracja: 26.12.2015Aktualnie: Nieaktywny
Poza forum Ostatnio: dziś, 21:19
Statystyki
- Grupa: Support Team
- Całość postów: 2 051
- Odwiedzin: 94 784
- Tytuł: Godlike
- Wiek: 24 lat
- Urodziny: Luty 4, 2000
-
Imię
Robert
-
Płeć
Mężczyzna
-
Lokalizacja
Wrocław
-
Zainteresowania
Horrory, poligrafia
Narzędzia użytkownika
Ostatnio byli
#776880 Szukam kodu na topke
Napisane przez Robiin w 01.06.2023 12:19
#776871 TakeDamage_Pre - sprawdzenie funkcji
Napisane przez Robiin w 30.05.2023 15:57
Proponowałbym zrobić jakiś config do tego. Przykładowy syntax:
m4a1: head: 50.0 generic: 25.0 chest: 20.0 stomach: 20.0 left_arm: 15.0 right_arm: 15.0 left_leg: 15.0 right_leg: 15.0 shield: 0.0
I potem względem tego wybierać damage. W ten sposób masz ładną i przejrzystą konfigurację i nie musisz rekompilować pluginu za każdym razem kiedy chcesz zmienić którąś z wartości.
Dodatkowo, jeśli używasz amxxa >= 1.9, to IsPlayer może użyć stałej dostępnej we wszystkich pluginach, które używają include "amxmodx" (czyli w praktycznie każdym); MAX_PLAYERS:
#define IsPlayer(%1) (1 <= %1 <= MAX_PLAYERS)
Reszta wygląda solidnie, ale już nie pamiętam kiedy ostatni raz pisałem coś w amxxie, więc mogę po prostu krzywo patrzeć
#776864 TakeDamage_Pre - sprawdzenie funkcji
Napisane przez Robiin w 28.05.2023 19:04
Czym są te floaty w hit_area?
Generalnie zamiast robić switcha to pewnie dałoby radę zrobić to z jednym ifem:
if(bitsDamageType & DMG_BULLET && get_pdata_int(id, m_iTeam, XTRA_OFS_PLAYER) != get_pdata_int(iAttacker, m_iTeam, XTRA_OFS_PLAYER)) SetHamParamFloat(4, hit_area[hitbox][id_based_on_weapon_id]);
Zakładając, że id_based_on_weapon_id będzie jakoś sensownie wyznaczany.
No i jeszcze kwestia HE, bo tam pewnie jest DMG_* inne, więc nie złapałby go if.
#776368 AmxxPro.pl - Paczki & Pluginy CS 1.6
Napisane przez Robiin w 07.02.2023 13:00
Reklamujcie się dalej w taki sposób, zbierajcie co raz to więcej wrogów przez pajacowanie w tematach i czyste podpierdzielanie pluginów, a w końcu się ktoś wk***i i wam skończy działność
Jeśli ktoś kupił jakikolwiek z ich pluginów i chciałby się podzielić pliczkiem .amxx lub .sma (które oczywiście usunę po sprawie), to chętnie sprawdzę jak dużo kodu jest podrąbane z pluginów moich, Pawła itd.
Autor misji, Smiguel, to wciąż zbanowany SSTeam.
Ponadto dwa z pluginów, które ktoś mi podesłał:
Plugin skinów broni jest edytowaną kopią pluginu Kamilovvskiego: https://amxx.pl/topi...ru-broni-skiny/, ale autor zmieniony na "mpN`"
Różnice w niektórych linijkach to skutek dekompilacji - jestem pewny, że sma wygląda 1:1.
Lewo - kod mpN
Prawo - kod oryginalny
Plugin mLogs jest kolejną kopią pluginu: https://forums.allie...p/t-157135.html, autor znów zmieniony na "mpN`":
#776214 [ROZWIĄZANE] [Problem] Rangi - wczytuje rangę po pierwszym fragu
Napisane przez Robiin w 28.01.2023 15:31
Podejrzewam, że client_authorized trzeba zmienić na client_putinserver, żeby kodzik ładowania rangi ładował się później. A najlepiej byłoby zrobić nową funkcję, która ładowałaby dane tylko przy wejściu na serwer.
W załączniku daję moją próbę rozwiązania problemu, ale jeśli mam być szczery to po napisaniu tego pluginu, już kilku osobom go poprawiałem bo miał w sobie jakiś błąd, którego już nie pamiętam..
Dodatkowo jako, że nie piszę już w amxxie to nie sprawdzałem mojej wersji na serwerze, jedynie przy kompilacji.
Załączone pliki
-
rangi.sma 13,72 KB 22 Ilość pobrań
rangi.amxx
#776180 Nauka Javy
Napisane przez Robiin w 24.01.2023 02:40
Ostatnio robiłem laby dla znajomego na studia w javie. Niemalże pierwszy raz pisałem w tym języku, a po kilku prostych zadaniach (typowe klepanki pokroju linked list, sortowania, nowe kolekcje itd) ogarniam podstawy i czuję się dobrze syntaxowo.
Także tak jak kolega wyżej napisał: jakiś projekcik i do przodu.
Jeśli umiesz już programować, to szkoda czasu na czytanie 15-minutowych artykułów po to, żeby dowiedzieć się jakiejś jednej małej rzeczy.
Polecam też skorzystać np. z ChatGPT, będzie (prawie) idealnym do tego narzędziem. Lub podejrzeć jakieś repo na githubie.
#775999 [ROZWIĄZANE] Reset statystyk - blokowanie komendy po reconnecie
Napisane przez Robiin w 11.01.2023 18:23
#775990 [ROZWIĄZANE] Reset statystyk - blokowanie komendy po reconnecie
Napisane przez Robiin w 11.01.2023 01:17
Nvault i sql jest zbędny.
Nie, bo napisał, że ma się resetować po zmianie mapy. Brak snu robi swoje
Nie potrzebujesz ani sql ani nvaulta. Jeśli ma się wszystko resetować po zmianie mapy to wystarczy przechowywać nazwę gracza i ilość użyć. Zmiana mapy sama wyzeruje kolekcję. Polecam użyć hashmapy (Trie), gdzie kluczem będzie nick gracza a wartością aktualna ilość użyć komendy.
A jak już chcesz iść w tym kierunku @Boski, to polecam poczytać o Array (dynamiczne tablice).
Poprawna wersja w załączniku - ale nie testowałem.
Załączone pliki
-
reset_score (1).sma 1,26 KB 42 Ilość pobrań
reset_score (1).amxx
#775556 [ROZWIĄZANE] Players models - nie podmienia modelu urban
Napisane przez Robiin w 30.11.2022 19:13
Raczej nie, może być tak, że wystarczy zmienić skina modelu. Jak dla mnie to i tak jest wszystko takim dziwnym sposobem zrobione, że jak za miesiąc będziesz chciał coś zmienić to nie będziesz pamiętać o co tak właściwie chodzi.
https://amxx.pl/pevresearch#pev_skin
#775194 zapis nvault
Napisane przez Robiin w 06.11.2022 22:45
Jeśli jest tylko jeden skin dla każdej broni, to:
skins.sma 2,32 KB 22 Ilość pobrań
skins.amxx
Ale ostrzegam, że nie testowałem tego, bo nie mam aktualnie kompilatora i jestem pod wpływem
#774747 ERROR : Mod_LoadModel
Napisane przez Robiin w 06.09.2022 06:59
#774722 Free Tomb Raider i Mafia
Napisane przez Robiin w 01.09.2022 18:57
#774555 [ROZWIĄZANE] tablice wielowymiarowe
Napisane przez Robiin w 07.08.2022 16:58
Napis jest tablicą. Więc masz tablicę, która przechowuję tablicę tablic - czyli trójwymiarową. A zadeklarowałeś 2 wymiary ([][]).
Dlatego deklarację "models" zmień na:
new const models[][][] = { {"guerilla", "Zwykly Model"}, {"gign", "Zwykly Model"}, {"vendetta", "Vendetta"}, {"MechaGerman", "Mecha German"} }
Dla testu możesz sobie wypisać pewne dane:
log_amx("Model pierwszy, Nazwa: %s, Plik: %s", models[0][0], models[0][1]);
Dla ułatwienia możesz użyć enuma:
enum _: (+= 1) { MODEL_FILE, MODEL_NAME };
Wtedy użycie "models":
log_amx("Model pierwszy, Nazwa: %s, Plik: %s", models[0][MODEL_NAME], models[0][MODEL_FILE]);
#774406 Jakaś funkcja do sprawdzania daty?
Napisane przez Robiin w 10.07.2022 12:53
Nigdy nie powinno się zapisywać do bazy danych sformatowanej daty - jest to niewygodne i nikomu nie służy (a w mysqlu nawet przeszkadza, bo wydaje mi się, że nie da się wtedy użyć tej wartości jako timestamp). Dlatego od razu zmień to na zapis unixowy.
Do sprawdzenia aktualnego czasu na serwerze użyj funkcji get_systime.
Później formatowanie to kwestia użycia np. funkcji z tegotematu.
#774272 Free Car Mechanic Simulator 2018
Napisane przez Robiin w 28.06.2022 19:33
- AMXX.pl: Support AMX Mod X i SourceMod
- → Przeglądanie profilu: Reputacja: Robiin
- Regulamin