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.
|
MocnyAmper
Rejestracja: 22.03.2022Aktualnie: Nieaktywny
Poza forum Ostatnio: 28.12.2023 18:49





O mnie
Statystyki
- Grupa: Użytkownik
- Całość postów: 251
- Odwiedzin: 3 328
- Tytuł: Wszechwidzący
- Wiek: Wiek nie został ustalony
- Urodziny: Data urodzin nie została podana
-
Płeć
Mężczyzna
-
Zainteresowania
Psuje wszystko po trochu
Kontakt
#776617 Jak wykryć użycie czatu głosowego?
Napisane przez PANDA_2zl
w 13.03.2023 18:35
#776535 Jak sprawdzić ilość amunicji w broni leżącej na ziemi?
Napisane przez PANDA_2zl
w 02.03.2023 10:32
https://dev-cs.ru/resources/1455/
#775786 [ROZWIĄZANE] Zapis polskich znaków do SQL
Napisane przez Engi
w 24.12.2022 14:10
You should never, ever use utf8_general_ci: it simply doesn’t work. It’s a throwback to the bad old days of ASCII stooopeeedity from fifty years ago.
Tutaj możesz poczytać dlaczego w dzisiejszych czasach powinno się używać utf8mb4:
https://adamhooper.m...b4-11761243e434
Tutaj może bardziej łopatologicznie:
https://stackoverflo...arsets-in-mysql chociaż pierwszy link powinien Ci wyjaśnić co i jak.
A tutaj przeczytasz jakie są różnice między utf8mb4_general_ci a utf8mb4_unicode_ci:
https://stackoverflo...utf8-unicode-ci
Podsumowując, polecam Ci przerobienie bazy danych do utf8mb4_unicode_ci żebyś mógł sobie przechowywać wszystkie chińskie czy tam ruskie znaki (i nie tylko).
#775753 [ROZWIĄZANE] Zapis polskich znaków do SQL
Napisane przez Ogen Dogen
w 22.12.2022 19:18
Upewnij się, że kodowanie tabeli i kolumn tekstowych jest ustawione na utf8. Następnie skonfiguruj kodowanie połączenia na utf8 przez funkcje SQL_SetCharset https://www.amxmodx..../SQL_SetCharset
#775495 Płatność blik z poziomu serwera?
Napisane przez Engi
w 22.11.2022 19:05
Problem jest taki, że nie mam działalności gospodarczej więc jedyne co mi zostaje to serwisy, które współpracują z osobami prowadzącymi nierejestrowaną działalność
W stripe nie musisz mieć działalności, a użytkownik l3szcz wprowadza w błąd pisząc, że stripe to coś takiego jak paypal (bliżej mu raczej do hotpaypa z którego korzystasz). W stripe otrzymujesz możliwość "postawienia" całej bramki płatności, metody płatności to między innymi BLIK, obsługa kart, google/apple pay, czy przelewów przez przelewy24.pl lub przelewów sepa.
Tak to wygląda mniej więcej:

Od razu mogę Cię uprzedzić, że przelewy24.pl po 2 tygodniach zostaną usunięte z Twojego konta ponieważ pachołki sobie wymyśliły, że żeby korzystać z ich systemu musisz mieć działalność.
Wypłaty są co miesiąc, a od wpłat jest pobierana stała opłata + 1,5% (chyba 1,5% nie pamiętam, jest na necie, znajdziesz) niezależnie od kwoty, o ile pamiętam to z 5zł przyjdzie Ci coś koło 3zł.
#775504 Płatność blik z poziomu serwera?
Napisane przez Engi
w 23.11.2022 10:52
W stripe nie musisz mieć działalności (...)
To jak w końcu?Od razu mogę Cię uprzedzić, że przelewy24.pl po 2 tygodniach zostaną usunięte z Twojego konta ponieważ pachołki sobie wymyśliły, że żeby korzystać z ich systemu musisz mieć działalność.
Bądźmy szczerzy, działalność nierejestrowana to najczęściej brak działalności
Wszystkie ostatnie płatności będą dostępne oprócz przelewy24.pl
#775281 Asynchroniczne zapytania do bazy danych, a nowe połączenia
Napisane przez DarkGL
w 10.11.2022 17:18
#774219 Losowe crashe przy zmianie mapy
Napisane przez Engi
w 20.06.2022 05:12
#774078 [Skill-Town.eu] Zapraszamy do wspólnego rozwoju!
Napisane przez PANDA_2zl
w 04.06.2022 14:29
A tak to forum spoczko, sklep też fajnie zrobiony, najlepiej grało mi się na cod mod chociaż też nawrzucane tam zbędnych rzeczy, przykładowo takie info po śmierci gdzie na mapce przykładowo. Cs_wiocha tylko przeszkadza a i tak nikt tego infa nie daje, jest jeszcze wiele rzeczy które moim zdaniem tylko przeszkadzają, ale to twoje serwery robisz według swoich upodobań.
Taka moja opinia

#773991 [ROZWIĄZANE] Zmiana wyglądu wskaźnika kierunku obrażeń
Napisane przez DarkGL
w 26.05.2022 11:27
#773987 [ROZWIĄZANE] Zmiana wyglądu wskaźnika kierunku obrażeń
Napisane przez PANDA_2zl
w 25.05.2022 16:46
#773935 [ROZWIĄZANE] Klasa spadochroniarz?
Napisane przez Vakos
w 19.05.2022 19:44
Pierwsza lepsza znaleziona u wujka google
Załączone pliki
-
codclass_desant.sma 4,47 KB 59 Ilość pobrań
codclass_desant.amxx
#773908 Przekazywanie stringów pomiędzy pluginami
Napisane przez Robiin
w 16.05.2022 18:41
#include <amxmodx> #define AUTHOR "Robin - amxx.pl/user/60210-wicked/" public plugin_init() { register_plugin("Count occurences of substring", "v1.0", AUTHOR); new source[50] = "AMXX"; new searched = 'X'; new c = count_occurences(source, searched); log_amx("Found %i occurences of ^"%c^" in ^"%s^"", c, searched, source); } count_occurences(const source[], needle) { new count; for(new i = 0; i < strlen(source); i++) { if(source[i] == needle) { count++; } } return count; }
L 05/16/2022 - 19:39:01: [occurences.amxx] Found 2 occurences of "X" in "AMXX"
Wielkość liter ma znaczenie.
#773910 Przekazywanie stringów pomiędzy pluginami
Napisane przez Robiin
w 16.05.2022 21:16
#773895 Przekazywanie stringów pomiędzy pluginami
Napisane przez Robiin
w 15.05.2022 11:27
Odbieranie stringa:
#include <amxmodx> #define AUTHOR "Robin - amxx.pl/user/60210-wicked/" #define MAX_MESSAGE_SIZE 32 #define DEBUG_MODE public plugin_init() { register_plugin("Hud message receiver", "v1.0", AUTHOR); } public plugin_natives() { register_native("add_message", "handle_add_message", 0); } // add_message(const message[]) public handle_add_message(plugin, params) { if(params != 1) { return 1; } new msg[MAX_MESSAGE_SIZE + 1]; get_string(1, msg, charsmax(msg)); #if defined DEBUG_MODE log_amx("Received message: ^"%s^"", msg); #endif return 0; }
Wysyłanie stringa:
#include <amxmodx> #define AUTHOR "Robin - amxx.pl/user/60210-wicked/" native add_message(const message[]); public plugin_init() { register_plugin("Hud message sender", "v1.0", AUTHOR); new hello[16] = "Hello"; add_message(hello); add_message("World!"); }
Output:
L 05/15/2022 - 12:19:52: [receiver.amxx] Received message: "Hello" L 05/15/2022 - 12:19:52: [receiver.amxx] Received message: "World!"
Pomysł ma sens, jeśli wiesz co robisz. Osobiście uważam, że limit 4 kanałów jest przydatny i wychodzi wszystkim na dobre, chociaż sam wiele razy potrzebowałem się go pozbyć. Dla przykładu, potrzebowałem zrobić hud feed, czyli wiadomości wyświetlane kolejkowo (coś jak reward feed w Call Of Duty i innych tego typu grach), i rozwiązałem problem przesyłając do głównego pluginu wiadomości i zapisując je do tablicy dynamicznej, z której później odczytywałem je w odpowiednim momencie:Ogólnie to chcę obejść problem ilości wiadomości jakie można wypisać na hud. Wiadomo, są 4 kanały, ale gdyby zsumować wiadomości z kilku pluginów i wyświetlać je jedna pod drugą, można by to obejść.
#include <amxmodx> #include <common> #define AUTHOR "Wicked - amxx.pl/user/60210-wicked/" #define TASK_DISPLAY_FEED 1337 #define MAX_HUD_LEN 128 static const CONFIG_PATH[] = "feed/feed.cfg"; enum _:FeedMessageEnumerator (+= 1) { FM_MESSAGE[MAX_HUD_LEN], FM_ID }; new Array:feed_messages[MAX_PLAYERS], displayed_messages, hud_object; public plugin_init() { register_plugin("Hud feed", "v1.0", AUTHOR); hud_object = CreateHudSyncObj(); create_cvar("feed_max_len", "128"); create_cvar("feed_max_messages", "5"); create_cvar("feed_display_time", "2.0"); create_cvar("feed_hold_time", "2.0"); create_cvar("feed_refresh_rate", "1.0"); create_cvar("feed_brightness", "0.2"); create_cvar("feed_r", "20"); create_cvar("feed_g", "20"); create_cvar("feed_b", "20"); create_cvar("feed_x", "-1.0"); create_cvar("feed_y", "0.85"); exec_config(); register_clcmd("say /test_feed", "test_feed"); } public test_feed(index) { static const Chars[] = "qwertyuiopasdfghjklmnbvcxz"; new msg[30]; ForRange(i, 0, 10) { formatex(msg, charsmax(msg), "%i. ", i + 1); ForRange(j, 0, random_num(10, 20)) { add(msg, charsmax(msg), fmt("%c", Chars[random(sizeof(Chars) - 1)])); } add_to_feed(index, msg); // log(LOG_DEBUG, "Adding message to user (%i) feed: %s", index, msg); } } public client_putinserver(index) { if(!is_valid_player(index)) { return; } feed_messages[index] = ArrayCreate(FeedMessageEnumerator, 1); // log(LOG_DEBUG, "Creating array of feed messages for user %i", index); } public client_disconnected(index) { if(!is_valid_player(index) || feed_messages[index] == Invalid_Array) { return; } ArrayDestroy(feed_messages[index]); // log(LOG_DEBUG, "Destroying array of feed messages for user %i", index); } public plugin_natives() { register_native("add_user_feed", "native_add_feed", 0); } // native add_user_feed(index, const message[]); public native_add_feed(plugin, params) { if(!valid_params(params, 2, "add_user_feed")) { return 0; } new index = get_param(1); if(!is_valid_player(index)) { return 0; } new msg[MAX_HUD_LEN]; get_string(1, msg, charsmax(msg)); add_to_feed(index, msg); // log(LOG_DEBUG, "Adding feed message for user %i: %s", index, msg); return 1; } add_to_feed(index, const message[]) { if(!strlen(message) || !is_valid_player(index)) { return 0; } new data[FeedMessageEnumerator], Float:time = get_cvar_float("feed_display_time"), max = get_cvar_num("feed_max_messsages"), size = ArraySize(feed_messages[index]); // If currently there are max or more messages displayed, add a delay to the new ones. if(size >= max) { new place = size - max + 1; time *= place; } copy(data[FM_MESSAGE], MAX_HUD_LEN - 1, message); data[FM_ID] = displayed_messages++; // Add new message. ArrayPushArray(feed_messages[index], data); // Set task to remove the message from feed after it is displayed. set_task(time, "remove_from_feed", index); new task = TASK_DISPLAY_FEED + index; // Show hud if it isn't there yet. if(!task_exists(task)) { new Float:refresh = get_cvar_float("feed_refresh_rate"); set_task(refresh, "show_feed", task, .flags = "b"); // log(LOG_DEBUG, "Setting up feed message task: (User: %i) (Time: %0.2f)", index, refresh); } return 1; } public remove_from_feed(index) { if(!is_valid_player(index) || !ArraySize(feed_messages[index])) { return; } // Remove first (oldest) message. ArrayDeleteItem(feed_messages[index], 0); // log(LOG_DEBUG, "Removing oldest message from user %i", index); } // public remove_from_feed(data[]) // { // new index = data[0]; // if(!is_valid_player(index)) // { // return; // } // new id = data[1], // array_id = -1, // data[FeedMessageEnumerator]; // ForDynamicArray(i, feed_messages[index]) // { // ArrayGetArray(feed_messages[index], i, data); // if(data[FM_ID] == id) // { // array_id = i; // break; // } // } // if(array_id != -1) // { // ArrayDeleteItem(feed_messages[index], array_id); // // log(LOG_DEBUG, "Removing message of %i from feed of user %i", array_id, index); // } // } public show_feed(task) { new index = task - TASK_DISPLAY_FEED; // No messages or players on the server. if(!ArraySize(feed_messages[index]) || !is_valid_player(index)) { return; } new msg[MAX_HUD_LEN], message[MAX_HUD_LEN]; ForDynamicArray(i, feed_messages[index]) { // Limit amount of displayed messages. if(i >= get_cvar_num("feed_max_messages")) { break; } ArrayGetString(feed_messages[index], i, msg, charsmax(msg)); // Format feed with oldest (first to disappear) on the bottom and newest on the top. format(message, charsmax(message), "%s^n%s", msg, message); } new Float:br = get_cvar_float("feed_brightness"), r = clamp(floatround(get_cvar_num("feed_r") * br), 0, 255), g = clamp(floatround(get_cvar_num("feed_g") * br), 0, 255), b = clamp(floatround(get_cvar_num("feed_b") * br), 0, 255), Float:x = get_cvar_float("feed_x"), Float:y = get_cvar_float("feed_y"), Float:refresh = get_cvar_float("feed_refresh_rate"); // Show the feed. set_hudmessage(r, g, b, x, y, 0, 0.0, refresh, 0.0, 0.0); ShowSyncHudMsg(index, hud_object, message); } exec_config() { new path[64]; get_localinfo("amxx_configsdir", path, charsmax(path)); server_cmd("exec %s/%s", path, CONFIG_PATH); server_exec(); } bool:is_valid_player(index) { return is_user_connected(index) && !is_user_hltv(index) && !is_user_bot(index); }
No i pamiętaj o tym, że istnieje też sync hud.
- AMXX.pl: Support AMX Mod X i SourceMod
- → Przeglądanie profilu: Reputacja: MocnyAmper
- Regulamin