Skocz do zawartości

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Robiin - zdjęcie

Robiin

Rejestracja: 26.12.2015
Aktualnie: Nieaktywny
Poza forum Ostatnio: wczoraj, 11:22
*****

#760221 Problem z gangami by Cypis

Napisane przez Robiin w 30.07.2019 12:34

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.


  • +
  • -
  • 1


#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]);

  • +
  • -
  • 1


#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.


  • +
  • -
  • 1


#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)

  • +
  • -
  • 1


#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.


  • +
  • -
  • 1


#759815 [ROZWIĄZANE] [Problem] invalid function or declaration

Napisane przez Robiin w 05.07.2019 13:34

U mnie na profilu masz plugin do nadawania flag przez menu z poziomu serwera
  • +
  • -
  • 1


#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.


  • +
  • -
  • 1


#759707 [ROZWIĄZANE] Losowa zabawa na JB

Napisane przez Robiin w 26.06.2019 17:20


Trza było może uzyć equali albo containi

 


Oczywiście nazwy zabaw w tablicy "zabawy" muszą być dokładnie takie same, jak te przy ich rejestrowaniu.

 

Może i mogłem użyć, w zabawach nie powtarzają się często nazwy, ale wciąż, dokładnie takie same to dokładnie takie same.


  • +
  • -
  • 1


#759699 [ROZWIĄZANE] Losowa zabawa na JB

Napisane przez Robiin w 26.06.2019 13:14

Tak
  • +
  • -
  • 1


#759690 [ROZWIĄZANE] Losowa zabawa na JB

Napisane przez Robiin w 25.06.2019 16:01

Najwyraźniej w silniku są zapisane inaczej albo po prostu źle je wpisałeś.
  • +
  • -
  • 1


#759687 [ROZWIĄZANE] Losowa zabawa na JB

Napisane przez Robiin w 25.06.2019 01:28

Nie kompilujesz dobrze kodu, albo coś masz źle.

56 linijka to "}"

67 linijka to "{"


  • +
  • -
  • 1


#759683 [ROZWIĄZANE] Losowa zabawa na JB

Napisane przez Robiin w 24.06.2019 15:43

Na pewno podmieniłeś mój kod z poprzedniego posta? Tam nie ma nawet tablicy, w której indeks mógły wychodzić poza jej wielkość. Na pewno to jest 67 linijka?


  • +
  • -
  • 1


#759671 [ROZWIĄZANE] Losowa zabawa na JB

Napisane przez Robiin w 24.06.2019 06:05

Nie dajesz mi pełnego logu błędu. Nie cytuj posta nad Tobą, bo to bez sensu
  • +
  • -
  • 1


#759668 [ROZWIĄZANE] Losowa zabawa na JB

Napisane przez Robiin w 24.06.2019 00:09

No jasne, że tak.. Mój błąd:

public losowanie()
{
	new randomGame = random_num(0, sizeof(zabawy) - 1),
	gameIndex = getGameIndexByName(zabawy[randomGame]);
	
	if(gameIndex == -1)
	{
		log_amx("Nieprawidlowa nazwa zabawy. (%i)", randomGame);
		
		return;
	}
	
	jail_set_play_game(gameIndex, true); 	
}

  • +
  • -
  • 1


#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.


  • +
  • -
  • 2