Skocz do zawartości

[KOSZ] [cs 1.6] Polskie końcówki wyrazów w zależności od wartości


Rekomendowane odpowiedzi

  • Właściciel
Opublikowano

Polskie końcówki wyrazów w zależności od wartości

Na pewno nieraz widzieliście napisy typu:

  • Koszt przesyłki wynosi 24 złotych
  • Na Twoim koncie jest 1 punktów
  • Sesja wygaśnie za 4 minut

Nie potrafiliście sobie z tym poradzić,

lub po prostu problem Was przerastał.

Mam dla Was wspaniałą nowinę:

Od dziś będziecie spać spokojnie!

Albowiem przedstawiam rozwiązanie.

Stock wybiera odpowiednią końcówkę na podstawie podanej wartości.

Mamy do czynienia z dwoma stockami:

  • dkoncowka() dla liczb całkowitych (integer, decimal)
  • fkoncowka() dla dla liczb zmiennoprzecinkowych (float)
Zastosowanie

dkoncowka(ile, czlon[], zero[], jeden[], dwa[]);
fkoncowka(Float:ile, czlon[], zero[], pol[], jeden[], dwa[]);

Opis

  • ile [liczba całkowita dla dkoncowka(), zmiennoprzecinkowa dla fkoncowka()] → wartość, na podstawie której wybierana będzie końcówka
  • czlon [ciąg znaków] → wbrew nazwie humanistycznej, początek wyrazu wyświetlanego, identyczny dla wszystkich kolejnych argumentów
  • zero [ciąg znaków] → końcówka, którą przyjmuje wyraz dla wartości ile równej 0, która dołączona do członu da pełny, odmieniony wyraz
  • pol [ciąg znaków] → końcówka, którą przyjmuje wyraz dla wartości ile równej 0.5, która dołączona do członu da pełny, odmieniony wyraz
  • jeden [ciąg znaków] → końcówka, którą przyjmuje wyraz dla wartości ile równej 1, która dołączona do członu da pełny, odmieniony wyraz
  • dwa [ciąg znaków] → końcówka, którą przyjmuje wyraz dla wartości ile równej 2, która dołączona do członu da pełny, odmieniony wyraz

Uwaga

Zmienna czlon służy zaoszczędzeniu czasu w używaniu funkcji, pozostawienie jej pustej i podanie pełnych odmian słów pozostałych zmiennych

w zupełności spełni swoje zadanie, choć zazwyczaj zwyczajnie przysporzy nam niepotrzebnego pisania kilkakrotnie początku tego samego wyrazu.

Przykład

if(is_user_alive(id)){
       new hp=get_user_health(id);
       client_print(id,print_chat,"Masz %d %s zycia", hp, dkoncowka(hp, "punkt", "ow", "", "y"));
}

if(is_user_connected(id)){
       new frags=get_user_frags(id);
       if(frags)
               client_print(id,print_chat,"Zdobyles %d %s", frags, dkoncowka(frags, "frag", "ow", "a", "i"));
       else
               client_print(id,print_chat,"Nie zdobyles jeszcze zadnego fraga");
}

Stock do skopiowania

stock dkoncowka(ile, czlon[], zero[], jeden[], dwa[]){
       new str[1024];
       ile=abs(ile);
       if(ile==1){
               format(str,1023,"%s%s",czlon,jeden);
               return str;
       }
       if((ile%10==2 || ile%10==3 || ile%10==4) && (!(ile%100==12 || ile%100==13 || ile%100==14))){
               format(str,1023,"%s%s",czlon,dwa);
               return str;
       }
       format(str,1023,"%s%s",czlon,zero);
       return str;
}

stock fkoncowka(Float:ile, czlon[], zero[], pol[], jeden[], dwa[]){
       new str[1024];
       ile=floatabs(ile);
       if(ile==1.0){
               format(str,1023,"%s%s",czlon,jeden);
               return str;
       }
       if(ile!=floatround(ile)){
               format(str,1023,"%s%s",czlon,pol);
               return str;
       }
       new num=floatround(ile);
       if((num%10==2 || num%10==3 || num%10==4) && (!(num%100==12 || num%100==13 || num%100==14))){
               format(str,1023,"%s%s",czlon,dwa);
               return str;
       }
       format(str,1023,"%s%s",czlon,zero);
       return str;
}

Implementacja (koncowka.inc)

  • Kopiujemy stock do folderu scripting/include i dodajemy na początku kodu

    • #include 

  • Lub kopiujemy potrzebne stocki do naszego kodu

Autor: benio101 dla amxx.pl

  • 4 lata później...
  • Właściciel
Opublikowano

Wiadomość została wygenerowana automatycznie.

 

Ten temat został oznaczony przez Moderatora jako spam i wyrzucony do -> archiwum.

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

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Polityka prywatności