W zaladuj_skils ArrayPushCell, nie ArraySetCell, ale to zapewne pomiesza Ci dane różmych klanów. Właśnie dlatego o takich rzeczach myśli się wcześniej.
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: wczoraj, 11:22
Statystyki
- Grupa: Support Team
- Całość postów: 2 053
- Odwiedzin: 95 175
- 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
#760221 Problem z gangami by Cypis
Napisane przez Robiin w 30.07.2019 12:34
#760208 Problem z gangami by Cypis
Napisane przez Robiin w 30.07.2019 08:51
ArrayGetCell zwróci Ci wartość, więc musi być przypisana do zmiennej:
new money = ArrayGetCell(gangMoney, user_gang[id]);
#760000 [ROZWIĄZANE] Losowy kolor barriery
Napisane przez Robiin w 16.07.2019 22:25
new Float:colors[3]; colors[0] = random_float(0.0, 255.0); colors[1] = random_float(0.0, 255.0); colors[2] = random_float(0.0, 255.0); set_pve(g_iEntBarrier, pev_rendercolor, colors);
"must be a constant expression" -> "Musi być wyrażenie stałe", co znaczy, że wartość musi być stała, a nie tworzona w locie.
#759996 dodanie expa graczu ktory skoczyl na glowe
Napisane przez Robiin w 16.07.2019 17:07
To może być overkill:
- Sprawdzaj czy gracz A podskoczył (np. używając flag),
- Sprawdzaj dotknięcie się dwóch entity o classname "player",
- Sprawdzaj wysokość gracza B i gracza A (jeśli A jest wyżej o wysokość bytu B, to przyjmijmy, że podskoczył mu nad głowę lub równo z nią)
Drugi sposób (zważając na to, że już do tej pory widzieliśmy taski co 0.1 sekundy z wykorzystaniem mnóstwa natywów i złożonych funkcji aby formatować tekst HUDu przy 32 graczach):
- Dla gracza, który się zrespi uruchom task co 0.1 sek.,
- Sprawdzaj dotknięcie się dwóch entity o classname "player",
- Sprawdzaj różnicę w wysokości graczy, których indeksy otrzymasz z eventu entity touch (podobnie do powyższego; jeśli A jest wyżej...),
- Sprawdzaj w tasku flagę FL_ONGROUND (jeśli dobrze pamiętam) - jeśli będzie ustawiona to znaczy, że gracz skaczący dotknął podłoża (więc tym samym nie może stać komuś na głowie)
#759926 Task się nie wyłącza.
Napisane przez Robiin w 12.07.2019 16:49
Pokaż cały kod.
Zmień public Poczatek_Rundy na to:
public Poczatek_Rundy() { for(new i = 1; i <= 32; i++) { if(!is_user_connected(i)) { continue; } remove_task(i + POKAZ_HUD); } }
Dodaj:
public client_disconnect(index) { if(!task_exists(index + POKAZ_HUD)) { return; } remove_task(index + POKAZ_HUD); }
Dodaj w Poczatek_Rundy log_amx'a, sprawdzającego czy task istnieje, przykładowo:
log_amx("Player: %i, Task id: %i, exist: %s", id, id + POKAZ_HUD, task_exists(id + POKAZ_HUD) ? "True" : "False");
Tak jak napisał TibacK, możesz uzywać argumentu "task_id" zamiast "id + POKAZ_HUD", wartości wyjdą dokładnie te same.
Polecam też pomyśleć nad estetyką kodu (odezwij się na PW, chętnie Ci podpowiem co i jak) i nazywaniem zmiennych po angielsku.
#759815 [ROZWIĄZANE] [Problem] invalid function or declaration
Napisane przez Robiin w 05.07.2019 13:34
#759716 [ROZWIĄZANE] Losowa zabawa na JB
Napisane przez Robiin w 27.06.2019 10:54
Pokaż cały kod losowania zabawy w pliku.
W silniku jaila zamień public "ZarejestrujZabawe" na ten:
public ZarejstrujZabawe(nazwa_zabawy[]) { param_convert(1); ArrayPushString(gZabawyName, nazwa_zabawy); static ilosc = 8; ilosc++; log_amx("Zabawa %i = '%s'", ilosc, nazwa_zabawy); return ilosc; }
i pokaż co wyświetli się w konsoli.
#759707 [ROZWIĄZANE] Losowa zabawa na JB
Napisane przez Robiin w 26.06.2019 17:20
#759699 [ROZWIĄZANE] Losowa zabawa na JB
Napisane przez Robiin w 26.06.2019 13:14
#759690 [ROZWIĄZANE] Losowa zabawa na JB
Napisane przez Robiin w 25.06.2019 16:01
#759687 [ROZWIĄZANE] Losowa zabawa na JB
Napisane przez Robiin w 25.06.2019 01:28
#759683 [ROZWIĄZANE] Losowa zabawa na JB
Napisane przez Robiin w 24.06.2019 15:43
#759671 [ROZWIĄZANE] Losowa zabawa na JB
Napisane przez Robiin w 24.06.2019 06:05
#759668 [ROZWIĄZANE] Losowa zabawa na JB
Napisane przez Robiin w 24.06.2019 00:09
#759658 [ROZWIĄZANE] Losowa zabawa na JB
Napisane przez Robiin w 23.06.2019 18:00
Rejestrujesz nowy natyw w silniku jb:
register_native("getGameIndexByName", "native_getGameIndexByName", 1);
Tworzysz public natywu:
public native_getGameIndexByName(name[]) { return getGameIndexByName(name); }
i dodajesz wymaganą funkcję:
public getGameIndexByName(name[]) { #define ForDynamicArray(%1,%2) for(new %1 = 0; %1 < ArraySize(%2); %1++) new gameName[64]; ForDynamicArray(i, gZabawyName) { ArrayGetString(gZabawyName, i, gameName, charsmax(gameName)); if(equal(gameName, name)) { return i; } } return -1; }
W pluginie z losowaniem dajesz:
native getGameIndexByName(name[]);
A w losowaniu zabawy robisz:
new randomGame = random_num(0, sizeof(zabawy) - 1), gameIndex = getGameIndexByName(zabawy[randomGame]); if(gameIndex == -1) { log_amx("Nieprawidlowa nazwa zabawy. (%s)", zabawy[gameIndex]); return; } jail_set_play_game(gameIndex, true);
Oczywiście nazwy zabaw w tablicy "zabawy" muszą być dokładnie takie same, jak te przy ich rejestrowaniu.
- AMXX.pl: Support AMX Mod X i SourceMod
- → Przeglądanie profilu: Reputacja: Robiin
- Regulamin