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

[ROZWIĄZANE] Losowy wybór nazwy


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

#1 MarvV

    Pomocny

  • Zbanowany

Reputacja: -1
Nowy

  • Postów:41
  • Lokalizacja:Piła
Offline

Napisano 28.10.2012 18:46

Witam :) Chciałbym zapytać w jaki sposób musiałbym przerobić niżej wymieniony kod, aby wybierało losową nazwę drużyny.
static const TeamNames[TEAMS][] = {
"NULL",
"Ludzie", //Terr
"Nieumarli", //CT
"NULL"
}

Chodzi mi o to, aby np. zamiast "Nieumarli", wybierało spośród kilku nazw jedną np. spośród "Zombie" - "Szkielety" - "Demony"

Użytkownik MarvV edytował ten post 28.10.2012 18:47


#2 Zapalka

    Wszechwidzący

  • Użytkownik

Reputacja: 194
Profesjonalista

  • Postów:283
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Janów Lubelski
Offline

Napisano 29.10.2012 06:54

random_num() ?
Nie bardzo rozumiem o co ci chodzi, opisz problem dokładniej.
  • +
  • -
  • 0
Zapraszam na http://zapalka.net.pl

#3 MarvV

    Pomocny

  • Autor tematu
  • Zbanowany

Reputacja: -1
Nowy

  • Postów:41
  • Lokalizacja:Piła
Offline

Napisano 29.10.2012 15:31

Ogólnie rzecz biorąć to chciałbym, aby losowało, którąś z wymienionych nazw. W HUD jest wyświetlana nazwa drużyny i ich fragi, a chciałbym, aby nazwa dla CT tj. Nieumarli była zmieniana, na którąś z wymienionych tj. Zombie, Szkielety, Demony (co mapę inna nazwa). Problem siedzi w tym, że nie umiem tego dobrze wklepać do random_num()
Dlatego chciałbym się właśnie zapytać, jak zastosować w tym wypadku random_num(), aby było poprawnie :)

#4 K!113r

    Teraz to chyba Sławek kek

  • Power User

Reputacja: 387
Wszechpomocny

  • Postów:868
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Piotrków Tryb.
Offline

Napisano 29.10.2012 16:16


client_print(0, print_chat, "nazwa teamu: %s", TeamNames[random(4)])

speedkill (29.10.2012 19:16):
Czemu dałeś random(4) ?
sebul (29.10.2012 20:59):
Są cztery elementy (nazwy) w tablicy, więc random(4) wybierze jeden z nich.

Użytkownik K!113r edytował ten post 29.10.2012 16:17

  • +
  • -
  • 0

DarkGL to mój autorytet.

skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować


#5 Zapalka

    Wszechwidzący

  • Użytkownik

Reputacja: 194
Profesjonalista

  • Postów:283
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Janów Lubelski
Offline

Napisano 29.10.2012 18:19

Deklarujesz dwie stałe(w nich ustawiasz różne nazwy, z których ma losować), jedną zmienną(do przechowywania aktualnej nazwy), jedną dyrektywę preprocesora(w niej ustawiasz ilość nazw):

#define NAMES_NUM 3

new const g_szCTNames[NAMES_NUM][] = {
"Nazwa1",
"Nazwa2",
"Nazwa3"
}


new const g_szTTNames[NAMES_NUM][] = {
"Nazwa1",
"Nazwa2",
"Nazwa3"
}
new g_iTeamName[2];

I później w public plugin_init gdzieś pod końcem dodajesz losowanie:

g_iTeamName[0]=random_num(0,NAMES_NUM-1);
g_iTeamName[1]=random_num(0,NAMES_NUM-1);

No a wyświetlanie już proste:


set_hudmessage(255, 255, 255, -1.0, 0.35, 0, 6.0, 2.0);
new iTeam=get_user_team(id);
switch(iTeam) {
case 1: show_hudmessage(id, "Twoja druzyna: %s", g_szCTNames[g_iTeamName[0]]);
case 2: show_hudmessage(id, "Twoja druzyna: %s", g_szTTNames[g_iTeamName[1]]);
}

I po problemie :)

Użytkownik Zapalka edytował ten post 29.10.2012 18:21

  • +
  • -
  • 0
Zapraszam na http://zapalka.net.pl

#6 K!113r

    Teraz to chyba Sławek kek

  • Power User

Reputacja: 387
Wszechpomocny

  • Postów:868
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Piotrków Tryb.
Offline

Napisano 29.10.2012 19:09

nie potrzeba random_num(), random() wystarczy
  • +
  • -
  • 0

DarkGL to mój autorytet.

skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować


#7 Zapalka

    Wszechwidzący

  • Użytkownik

Reputacja: 194
Profesjonalista

  • Postów:283
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Janów Lubelski
Offline

Napisano 29.10.2012 19:57

też można, ale przyzwyczaiłem się już do random_num. W przypadku random będzie to wyglądało następująco:
random(NAMES_NUM);

  • +
  • -
  • 0
Zapraszam na http://zapalka.net.pl

#8 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 30.10.2012 10:12

Przyzwyczaiłeś się wywoływać funkcję o dłuższej nazwie, z dwukrotnie większą liczbą argumentów,
działającą znacznie dłużej i wymagającą wykonywania dodatkowych operacji, w szczególności odejmowania? :o

BTW. Zapalka podał kod, który działa prawidłowo, ale zdecydowanie dłużej i pożera znacznie więcej zasobów sprzętowych, użyj zatem kodu K!113ra, ten jest w zupełności poprawny.

Użytkownik benio101 edytował ten post 30.10.2012 10:16


#9 Zapalka

    Wszechwidzący

  • Użytkownik

Reputacja: 194
Profesjonalista

  • Postów:283
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Janów Lubelski
Offline

Napisano 31.10.2012 07:34

Tak, przyzwyczaiłem się. Co w tym złego? Ma dłuższą nazwę, ale w czym to przeszkadza? Jest bardziej zaawansowana dzięki czemu zawsze mogę losować z przedziału o jakim tylko mi się marzy. A w porównaniu czasu wykonywania tych funkcji obydwie mają dokładnie taki sam wynik.
Zarówno random jak i random_num w moich testach osiągnęły wynik 0.000003s.
Prawisz teorie wyssane z palca ;)

@topic
Autor chyba zapomniał już o tym temacie więc nie ma sensu chyba tego dalej ciągnąć.
  • +
  • -
  • 0
Zapraszam na http://zapalka.net.pl

#10 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 31.10.2012 10:18

Tutaj znajdziesz algorytm obydwu funkcji.
Tutaj zaś znajdziesz palec, z którego teorie wyssałem.

Co w tym złego?

Większe zużycie zasobów sprzętowych, dłuższe wykonywanie się wątku pluginu i większe obciążenie maszyny, co prowadzi do mniej płynnej rozgrywki i lagów, ale… co w tym złego?

#11 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 31.10.2012 10:19

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL




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

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