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

Problem z zaokrąglaniem


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

#1 zakardo

    Początkujący

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:11
Offline

Napisano 16.10.2010 20:29

Witam
Mam problem z zaokrągleniem liczby. Korzystam z tego poradnika float_to_num - Nieoficjalny polski support AMX Mod X
Jednak chyba coś nie działa, bo mimo że plugin się kompiluje to nie działa poprawnie.
Fragment kodu o który mi chodzi:
public float_to_num(Float:liczba)
{
    new str[16]
    float_to_str(liczba,str,15)
    new kropka=contain(str,".")
    format(str,kropka,str)
    return str_to_num(str)
}
//----------------------------------------------------------------------------------------------

    gTime[id] = gLevelDifr[id]/10
    gTime1[id] = float_to_num(gTime[id])
    gTimeleft[id] = get_cvar_num("t800_time") + 1 + gTime1[id]
    gT800Timer[id] = gTimeleft[id]
    shGiveWeapon(id,"weapon_m249",true) 
    set_user_godmode(id,1)
    t800_morph(id)
    gKills = get_user_frags(id)
    ultimateTimer(id, get_cvar_num("t800_cooldown") * 1.0)

    new message[128]
    format(message, 127, "Zamieniles sie w T-800! ZABIJAJ !!")
    set_hudmessage(255,0,0,-1.0,0.3,0,0.25,1.0,0.0,0.0,87)
    show_hudmessage(id, message)

    return PLUGIN_HANDLED
}

Cały plugin w załączniku.

Byłbym wdzięczny za jakiekolwiek wskazówki.

Załączone pliki


Użytkownik zakardo edytował ten post 16.10.2010 20:30

  • +
  • -
  • 0

#2 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 17.10.2010 16:24

gTime[id] = gLevelDifr[id]/10



czy zmienne gTime[] oraz g_LevelDifr[] są typu Float?
  • +
  • -
  • 0

#3 zakardo

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:11
Offline

Napisano 17.10.2010 21:53

Są zadeklarowane jako integer ale zmiana na float zmienia to, że zamiast 0 pojawia się jakaś kosmiczna wartość.
  • +
  • -
  • 0

#4 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 17.10.2010 22:44

gTime[id] = gLevelDifr[id]/10
gTime1[id] = float_to_num(gTime[id])
zamień na
gTime1[id] = gLevelDifr[id]/10

nie potrzebujesz to zaokrąglania
  • +
  • -
  • 0

#5 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 17.10.2010 22:49

Jeżeli zmienna jest typu integer to nie przypiszesz do niej wartości zmiennoprzecinkowej, a coza tym idzie nie użyjesz konwertacji float_to_int, bo nie masz floata żebyś go mógł konwertować.
  • +
  • -
  • 0

#6 zakardo

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:11
Offline

Napisano 18.10.2010 19:26

Chyba się już zgubiłem. Chcę aby zmienna gT800Timer[id] była liczbą naturalną.
  • +
  • -
  • 0




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

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