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
 

Zdjęcie

grupy donaciaka do hud


Najlepsza odpowiedź ChrisN, 30.04.2018 19:25

Wystarczyło ten kod

 

static iGroup, iLevel, Float:fPercentExp, szGroupName[20];
 
iGroup = g_iPlayerGroup[target];
 
iGroup = g_iPlayerGroup[target];
new hp = get_user_health(target);
 
if(iGroup == -1)
{
iLevel = 0;
fPercentExp = 0.0;
copy(szGroupName, 19, "Brak");
}
else
{
iLevel = ArrayGetCell(g_iGroupLevel, iGroup);
fPercentExp = float(ArrayGetCell(g_iGroupExperience, iGroup) - WriteLevelExp(iLevel-1)) / float(WriteLevelExp(iLevel) - WriteLevelExp(iLevel-1)) * 100.0;
ArrayGetString(g_szGroupName, iGroup, szGroupName, 19);
}

 

Wrzucić pod if(!target)

return PLUGIN_CONTINUE;

 

i wszystko śmiga zero errorów :)

Przejdź do postu


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
6 odpowiedzi w tym temacie

#1 ChrisN

    Wszechpomocny

  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:303
  • Imię:Christopher
Offline

Napisano 25.04.2018 19:17

Hey, mam problem mianowicie chciałem dodać grupy donaciaka do hud i fajnie działa jeśli ktos ma klan, bo jeśli go nie posiada to wywala całe hud coda :(

 

public PokazInformacje(id) 
{
id -= ZADANIE_POKAZ_INFORMACJE;
 
if(!is_user_connected(id))
{
remove_task(id+ZADANIE_POKAZ_INFORMACJE);
return PLUGIN_CONTINUE;
}
 
if(!is_user_alive(id))
{
new target = pev(id, pev_iuser2);
 
if(!target)
return PLUGIN_CONTINUE;
 
set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
ShowSyncHudMsg(id, SyncHudObj, "Klasa : %s^nDoswiadczenie : %i / %i^nPoziom : %i^nPerk : %s", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], PobierzDoswiadczeniePoziomu(poziom_gracza[target]), poziom_gracza[target], nazwy_perkow[perk_gracza[target]]);
return PLUGIN_CONTINUE;
}
static iGroup, iLevel, Float:fPercentExp, szGroupName[20];
 
iGroup = g_iPlayerGroup[id];
iLevel = ArrayGetCell(g_iGroupLevel, iGroup);
 
fPercentExp = float(ArrayGetCell(g_iGroupExperience, iGroup) - WriteLevelExp(iLevel-1)) / float(WriteLevelExp(iLevel) - WriteLevelExp(iLevel-1)) * 100.0;
ArrayGetString(g_szGroupName, iGroup, szGroupName, 19);
set_hudmessage(0, 255, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Doswiadczenie : %i / %i]^n[Poziom : %i]^n[Perk : %s]^n[Klan: %s | %d | %d%]", nazwy_klas[klasa_gracza[id]], doswiadczenie_gracza[id], PobierzDoswiadczeniePoziomu(poziom_gracza[id]), poziom_gracza[id], nazwy_perkow[perk_gracza[id]], szGroupName, iLevel, fPercentExp);
 
return PLUGIN_CONTINUE;
}

  • +
  • -
  • 0

#2 AwIlL^^

    Magiczny Gość

  • Użytkownik

Reputacja: 135
Zaawansowany

  • Postów:263
  • Steam:steam
  • Imię:Eryk
  • Lokalizacja:Gdańsk
Offline

Napisano 26.04.2018 02:36

Prawdopodobnie będzie działać, ale nie mam pewności bo nie znam kodu tych klanów ani trochę...
 

public PokazInformacje(id) 
{
	id -= ZADANIE_POKAZ_INFORMACJE;
	 
	if(!is_user_connected(id))
	{
		remove_task(id+ZADANIE_POKAZ_INFORMACJE);
		return PLUGIN_CONTINUE;
	}
	 
	if(!is_user_alive(id))
	{
		new target = pev(id, pev_iuser2);
		 
		if(!target)
			return PLUGIN_CONTINUE;
		 
		set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
		ShowSyncHudMsg(id, SyncHudObj, "Klasa : %s^nDoswiadczenie : %i / %i^nPoziom : %i^nPerk : %s", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], PobierzDoswiadczeniePoziomu(poziom_gracza[target]), poziom_gracza[target], nazwy_perkow[perk_gracza[target]]);
		return PLUGIN_CONTINUE;
	}
	static iGroup, iLevel, Float:fPercentExp, szGroupName[20];
	 
	iGroup = g_iPlayerGroup[id];
	
	if(iGroup == -1)
	{
		iLevel = 0;
		fPercentExp = 0.0;
		copy(szGroupName, 19, "Brak");
	}
	else
	{
		iLevel = ArrayGetCell(g_iGroupLevel, iGroup);
		fPercentExp = float(ArrayGetCell(g_iGroupExperience, iGroup) - WriteLevelExp(iLevel-1)) / float(WriteLevelExp(iLevel) - WriteLevelExp(iLevel-1)) * 100.0;
		ArrayGetString(g_szGroupName, iGroup, szGroupName, 19);
	}
	set_hudmessage(0, 255, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
	ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Doswiadczenie : %i / %i]^n[Poziom : %i]^n[Perk : %s]^n[Klan: %s | %d | %d%]", nazwy_klas[klasa_gracza[id]], doswiadczenie_gracza[id], PobierzDoswiadczeniePoziomu(poziom_gracza[id]), poziom_gracza[id], nazwy_perkow[perk_gracza[id]], szGroupName, iLevel, fPercentExp);
	 
	return PLUGIN_CONTINUE;
}

Napisałeś, że wszystko działa kiedy jest klan, ale zastanawia mnie taki drobny szczegół:

%d%

Nie wierzę, że działa poprawnie.
Na moje powinno być tak:

%0.0f%%

cyfra przed kropką oznacza ile liczb ma być wyświetlone, 0 oznacza wszystkie
druga cyfra to ilość wyświetlonych cyfr po przecinku, 0 oznacza brak cyfr po przecinku
f oznacza, że wyświetlana jest liczba rzeczywista
są dwa znaki procentu bo jeden znika przez formatowanie

 

Baw się dobrze. :)


  • +
  • -
  • 0

Potrzebujesz porad do amxx?? Pisz na [PW]


#3 ChrisN

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:303
  • Imię:Christopher
Offline

Napisano 29.04.2018 17:15

Prawdopodobnie będzie działać, ale nie mam pewności bo nie znam kodu tych klanów ani trochę...
 

public PokazInformacje(id) 
{
	id -= ZADANIE_POKAZ_INFORMACJE;
	 
	if(!is_user_connected(id))
	{
		remove_task(id+ZADANIE_POKAZ_INFORMACJE);
		return PLUGIN_CONTINUE;
	}
	 
	if(!is_user_alive(id))
	{
		new target = pev(id, pev_iuser2);
		 
		if(!target)
			return PLUGIN_CONTINUE;
		 
		set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
		ShowSyncHudMsg(id, SyncHudObj, "Klasa : %s^nDoswiadczenie : %i / %i^nPoziom : %i^nPerk : %s", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], PobierzDoswiadczeniePoziomu(poziom_gracza[target]), poziom_gracza[target], nazwy_perkow[perk_gracza[target]]);
		return PLUGIN_CONTINUE;
	}
	static iGroup, iLevel, Float:fPercentExp, szGroupName[20];
	 
	iGroup = g_iPlayerGroup[id];
	
	if(iGroup == -1)
	{
		iLevel = 0;
		fPercentExp = 0.0;
		copy(szGroupName, 19, "Brak");
	}
	else
	{
		iLevel = ArrayGetCell(g_iGroupLevel, iGroup);
		fPercentExp = float(ArrayGetCell(g_iGroupExperience, iGroup) - WriteLevelExp(iLevel-1)) / float(WriteLevelExp(iLevel) - WriteLevelExp(iLevel-1)) * 100.0;
		ArrayGetString(g_szGroupName, iGroup, szGroupName, 19);
	}
	set_hudmessage(0, 255, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
	ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Doswiadczenie : %i / %i]^n[Poziom : %i]^n[Perk : %s]^n[Klan: %s | %d | %d%]", nazwy_klas[klasa_gracza[id]], doswiadczenie_gracza[id], PobierzDoswiadczeniePoziomu(poziom_gracza[id]), poziom_gracza[id], nazwy_perkow[perk_gracza[id]], szGroupName, iLevel, fPercentExp);
	 
	return PLUGIN_CONTINUE;
}

Napisałeś, że wszystko działa kiedy jest klan, ale zastanawia mnie taki drobny szczegół:

%d%

Nie wierzę, że działa poprawnie.
Na moje powinno być tak:

%0.0f%%

cyfra przed kropką oznacza ile liczb ma być wyświetlone, 0 oznacza wszystkie
druga cyfra to ilość wyświetlonych cyfr po przecinku, 0 oznacza brak cyfr po przecinku
f oznacza, że wyświetlana jest liczba rzeczywista
są dwa znaki procentu bo jeden znika przez formatowanie

 

Baw się dobrze. :)

 

Działa, ale dodałem go też do hud oglądającego na tej samej zasadzie i wywala mi błędy w consoli gdy kogos oglądam

 
L 04/29/2018 - 18:12:56: [AMXX] Displaying debug trace (plugin "QTM_CodMod.amxx")
L 04/29/2018 - 18:12:56: [AMXX] Run time error 10: native error (native "ArrayGetCell")
L 04/29/2018 - 18:12:56: [AMXX]    [0] QTM_CodMod.sma::PokazInformacje (line 1250)

linijka 1250

 

iLevel = ArrayGetCell(g_iGroupLevel, iGroup);

 

mój public

 

public PokazInformacje(id) 
{
id -= ZADANIE_POKAZ_INFORMACJE;
 
if(!is_user_connected(id))
{
remove_task(id+ZADANIE_POKAZ_INFORMACJE);
return PLUGIN_CONTINUE;
}
 
if(!is_user_alive(id))
{
new target = pev(id, pev_iuser2);
new ordery2 = cod_get_user_coins(target);
 
static iGroup, iLevel, Float:fPercentExp, szGroupName[20];
 
iGroup = g_iPlayerGroup[target];
 
iGroup = g_iPlayerGroup[target];
new hp = get_user_health(target);
 
if(iGroup == -1)
{
iLevel = 0;
fPercentExp = 0.0;
copy(szGroupName, 19, "Brak");
}
else
{
iLevel = ArrayGetCell(g_iGroupLevel, iGroup);
fPercentExp = float(ArrayGetCell(g_iGroupExperience, iGroup) - WriteLevelExp(iLevel-1)) / float(WriteLevelExp(iLevel) - WriteLevelExp(iLevel-1)) * 100.0;
ArrayGetString(g_szGroupName, iGroup, szGroupName, 19);
}
 
if(!target)
return PLUGIN_CONTINUE;
new ileMa = doswiadczenie_gracza[target],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[target]),ilePotrzebaBylo = poziom_gracza[target]-1 >= 0 ? PobierzDoswiadczeniePoziomu(poziom_gracza[target]-1) : 0;
new Float:fProcent = 0.0;
fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0;
 
set_hudmessage(0, 255, 0, 0.01, 0.16, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "==================^n|> Klasa : %s^n|> Poziom : %i(%0.1f%%)^n|> Perk : %s^n|> Zdrowie: %d^n|> Klan: %s (Poz: %d[%0.0f%%]^n|> Ordery: %i^n==================", nazwy_klas[klasa_gracza[target]], poziom_gracza[target], fProcent, nazwy_perkow[perk_gracza[target]], hp, szGroupName, iLevel, fPercentExp, ordery2);
return PLUGIN_CONTINUE;
}
new ileMa = doswiadczenie_gracza[id],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[id]),ilePotrzebaBylo = poziom_gracza[id]-1 >= 0 ?PobierzDoswiadczeniePoziomu(poziom_gracza[id]-1) : 0
new Float:fProcent = 0.0;
fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0;
new ordery = cod_get_user_coins(id);
static iGroup, iLevel, Float:fPercentExp, szGroupName[20];
 
iGroup = g_iPlayerGroup[id];
new hp = get_user_health(id);
 
if(iGroup == -1)
{
iLevel = 0;
fPercentExp = 0.0;
copy(szGroupName, 19, "Brak");
}
else
{
iLevel = ArrayGetCell(g_iGroupLevel, iGroup);
fPercentExp = float(ArrayGetCell(g_iGroupExperience, iGroup) - WriteLevelExp(iLevel-1)) / float(WriteLevelExp(iLevel) - WriteLevelExp(iLevel-1)) * 100.0;
ArrayGetString(g_szGroupName, iGroup, szGroupName, 19);
}
set_hudmessage(0, 255, 0, 0.01, 0.16, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "==================^n|> Klasa : %s^n|> Poziom : %i(%0.1f%%)^n|> Perk : %s^n|> Zdrowie: %d^n|> Klan: %s (Poz: %d[%0.0f%%])^n|> Ordery: %i^n==================", nazwy_klas[klasa_gracza[id]], poziom_gracza[id], fProcent, nazwy_perkow[perk_gracza[id]], hp, szGroupName, iLevel, fPercentExp, ordery);
 
return PLUGIN_CONTINUE;
}

Użytkownik chrisN edytował ten post 29.04.2018 17:16

  • +
  • -
  • 0

#4 AwIlL^^

    Magiczny Gość

  • Użytkownik

Reputacja: 135
Zaawansowany

  • Postów:263
  • Steam:steam
  • Imię:Eryk
  • Lokalizacja:Gdańsk
Offline

Napisano 29.04.2018 18:46

W kodzie nie ma błędu...
Gracz, którego obserwujesz należy do grupy, która najwyraźniej nie istnieje.

 

lub przerabiałeś kod i nie tworzy uchwytu do tablicy dynamicznej dla tej zmiennej: g_iGroupLevel

i masz tą linijkę 2 razy:

iGroup = g_iPlayerGroup[target];

  • +
  • -
  • 0

Potrzebujesz porad do amxx?? Pisz na [PW]


#5 ChrisN

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:303
  • Imię:Christopher
Offline

Napisano 30.04.2018 15:08

 

W kodzie nie ma błędu...
Gracz, którego obserwujesz należy do grupy, która najwyraźniej nie istnieje.

 

lub przerabiałeś kod i nie tworzy uchwytu do tablicy dynamicznej dla tej zmiennej: g_iGroupLevel

i masz tą linijkę 2 razy:

iGroup = g_iPlayerGroup[target];

 

Usunąłem ten kawałek kodu co był dwa razy ale i tak wali tymi błędami, no gracz nie należy do grupy bo ma podane "Brak" i sypie tymi błędami :( Nie przeszkadza mi to aż tak, bo wszystko funkcjonuje normalnie tylko, spami w consolce :(

 

L 04/30/2018 - 16:08:22: [AMXX] Displaying debug trace (plugin "QTM_CodMod.amxx")
L 04/30/2018 - 16:08:22: [AMXX] Run time error 10: native error (native "ArrayGetCell")
L 04/30/2018 - 16:08:22: [AMXX]    [0] QTM_CodMod.sma::PokazInformacje (line 1248)
L 04/30/2018 - 16:08:22: Invalid cellvector handle provided (38:0:0)
L 04/30/2018 - 16:08:22: [AMXX] Displaying debug trace (plugin "QTM_CodMod.amxx")
L 04/30/2018 - 16:08:22: [AMXX] Run time error 10: native error (native "ArrayGetCell")
L 04/30/2018 - 16:08:22: [AMXX]    [0] QTM_CodMod.sma::PokazInformacje (line 1248)
L 04/30/2018 - 16:08:22: Invalid cellvector handle provided (38:0:0)
L 04/30/2018 - 16:08:22: [AMXX] Displaying debug trace (plugin "QTM_CodMod.amxx")
L 04/30/2018 - 16:08:22: [AMXX] Run time error 10: native error (native "ArrayGetCell")
L 04/30/2018 - 16:08:22: [AMXX]    [0] QTM_CodMod.sma::PokazInformacje (line 1248)
L 04/30/2018 - 16:08:22: Invalid cellvector handle provided (38:0:0)
L 04/30/2018 - 16:08:22: [AMXX] Displaying debug trace (plugin "QTM_CodMod.amxx")
L 04/30/2018 - 16:08:22: [AMXX] Run time error 10: native error (native "ArrayGetCell")
L 04/30/2018 - 16:08:22: [AMXX]    [0] QTM_CodMod.sma::PokazInformacje (line 1248)
L 04/30/2018 - 16:08:22: Invalid cellvector handle provided (38:0:0)
L 04/30/2018 - 16:08:22: [AMXX] Displaying debug trace (plugin "QTM_CodMod.amxx")
L 04/30/2018 - 16:08:22: [AMXX] Run time error 10: native error (native "ArrayGetCell")
L 04/30/2018 - 16:08:22: [AMXX]    [0] QTM_CodMod.sma::PokazInformacje (line 1248)
L 04/30/2018 - 16:08:22: Invalid cellvector handle provided (38:0:0)
L 04/30/2018 - 16:08:22: [AMXX] Displaying debug trace (plugin "QTM_CodMod.amxx")
L 04/30/2018 - 16:08:22: [AMXX] Run time error 10: native error (native "ArrayGetCell")
L 04/30/2018 - 16:08:22: [AMXX]    [0] QTM_CodMod.sma::PokazInformacje (line 1248)

  • +
  • -
  • 0

#6 ChrisN

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:303
  • Imię:Christopher
Offline

Napisano 30.04.2018 15:13

Do tego mam jeszcze takie coś zauważyłem

 

 
L 04/30/2018 - 16:12:40: [AMXX] Displaying debug trace (plugin "QTM_CodMod.amxx")
L 04/30/2018 - 16:12:40: [AMXX] Run time error 4: index out of bounds
L 04/30/2018 - 16:12:40: [AMXX]    [0] QTM_CodMod.sma::CurWeapon (line 1045)
Creating bot...
L 04/30/2018 - 16:12:41: [AMXX] Displaying debug trace (plugin "QTM_CodMod.amxx")
L 04/30/2018 - 16:12:41: [AMXX] Run time error 4: index out of bounds
L 04/30/2018 - 16:12:41: [AMXX]    [0] QTM_CodMod.sma::CurWeapon (line 1045)
nie wiem czy to ma związek z tym
  • +
  • -
  • 0

#7 ChrisN

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:303
  • Imię:Christopher
Offline

Napisano 30.04.2018 19:25   Najlepsza odpowiedź

Wystarczyło ten kod

 

static iGroup, iLevel, Float:fPercentExp, szGroupName[20];
 
iGroup = g_iPlayerGroup[target];
 
iGroup = g_iPlayerGroup[target];
new hp = get_user_health(target);
 
if(iGroup == -1)
{
iLevel = 0;
fPercentExp = 0.0;
copy(szGroupName, 19, "Brak");
}
else
{
iLevel = ArrayGetCell(g_iGroupLevel, iGroup);
fPercentExp = float(ArrayGetCell(g_iGroupExperience, iGroup) - WriteLevelExp(iLevel-1)) / float(WriteLevelExp(iLevel) - WriteLevelExp(iLevel-1)) * 100.0;
ArrayGetString(g_szGroupName, iGroup, szGroupName, 19);
}

 

Wrzucić pod if(!target)

return PLUGIN_CONTINUE;

 

i wszystko śmiga zero errorów :)


  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych