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

Jak napisać, by pokazało obok siebie?


  • Zamknięty Temat jest zamknięty
4 odpowiedzi w tym temacie

#1 Kukol

    Zaawansowany

  • Zbanowany

Reputacja: 6
Nowy

  • Postów:113
  • Lokalizacja:Katowice
Offline

Napisano 04.09.2011 01:15

Witam! Mam task który wykonuje się bez przerwy co 0.1 sekundę, a w nim mam pewną funkcję, a wniej chciałbym coś takiego:

Mam zmienne:



enum _:effects_skill { Brak = 0,
EFEKT1
EFEKT2
};

new effects[33][effects_skill];

new name_effects[][] = {
"Nazwa Efektu 1",
"Nazwa Efektu 2"
};


Teraz jak wykonać coś takiego:

Gdy gracz ma effects[index][1] oraz effects[index][2] > 0 to ma pokazać:

"Nazwa Efektu 1, Nazwa Efektu 2", a gdy ma tylko jedną zmienną ustawioną na jeden to ma pokazać jedną nazwę? Efektów mam około 15..

#2 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 04.09.2011 07:07

for(new i = 0;i<15;i++){

if(effects[id][i] == 1) client_print(id,3,name_effects[i]);

}

  • +
  • -
  • 0

#3 Muzzi

    Guru

  • Przyjaciel

Reputacja: 228
Wszechwidzący

  • Postów:772
  • Lokalizacja:Kraków
Offline

Napisano 04.09.2011 08:42

Jeżeli chodzi o to co dał dark to można prościej.


for(new i = 0;i<sizeof(effects);i++){
if(effects[id][i] == 1) client_print(id,3,name_effects[i]);
}

  • +
  • -
  • 0

#4 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 04.09.2011 10:37

lub jeszcze prościej
for(new i = 0;i<sizeof(effects);i++) if(effects[id][i])  client_print(id,3,name_effects[i]);

  • +
  • -
  • 0

#5 Kukol

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 6
Nowy

  • Postów:113
  • Lokalizacja:Katowice
Offline

Napisano 04.09.2011 11:41

Sam sobie poradziłem, chodziło mi o takie coś:

public Pokaz_Effekt(id)
{
new nazwa_efektu[effects_skill][250], licz, message[512];

new len = formatex(message, 249, "");

for(new i = 1; i < effects_skill; i++)
{
if(effects[id][i] > 0)
{
formatex(nazwa_efektu[licz++], 511, "%s", name_effects[i])
}
}

if(licz > 0)
{
for(new x = 0; x <= licz; x++)
{
len += formatex(message[len], 511 - len, "%s%s", nazwa_efektu[x], x < (licz-1) ? ", ":"")
}
}
set_hudmessage(255, 0, 0, 0.12, 0.0, 0, 6.0, 3.0)
show_hudmessage(id, "%s", message);
}





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

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