Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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] Zmienianie się szansy na coś wraz ze wzrostem zmiennej


Najlepsza odpowiedź sebul, 12.05.2014 15:01

random(100)

Coś takiego losuje nam liczby z przedziału od 0 do 99, czyli jest 100 wartości, więc jeśli damy taki warunek
random(100) < 5

to będzie 5% szansy na jego spełnienie, a jeśli taki
random(100) < 19

to będzie 19% szansy. Chyba reszty nie trzeba tłumaczyć?

A co do warunku
if(!random(unikChance))

on spełni się tylko wtedy, gdy wylosowaną wartością będzie liczba 0, czyli jeśli "unikChance" będzie równe powiedzmy 40, to na spełnienie tego warunku będziemy mieli 1/40, czyli 2.5%. Przejdź do postu


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

#1 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Online

Napisano 12.05.2014 14:28

Witam,

Zrobiłem sobie takiego stats moda i nwm jak zrobić dalej statystykę unik.

new unikChance = floatround(unik_gracza[vid] * 0.5, floatround_floor)
            
if(!random(unikChance)) return HAM_IGNORED; //pomin obrazenia

Chodzi mi o to, żeby to była procentowa szansa na unik.

Czyli jeśli mam 2 punkty w statystyce unik to mam 1% szansy na unik.

 

Czy to będzie poprawne?

Widziałem jeszcze coś takiego:

if(random(100) > unikChance)

  • +
  • -
  • 0

Sprzedam Paczkę CoD pod CS 1.6 (JEST WIELE WERSJI DO WYBORU TEJ PACZKI) na lvl od 201 - 601

Silnik (8 nowych statystyk, poprawiony zapis, dodatkowy exp, pozbyto się CurWeapon). Ponad 100 perków (do wyboru do koloru). Sklep, NOWE MISJE (QUESTY), premium i super premium, AUKCJE, KLANY, zapis nVault, 4 zestawy modeli bronii do wyboru!

JESTEŚ ZAINTERESOWANY KUPNEM? NAPISZ WIADOMOŚĆ DO MNIE!


#2 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 453
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 12.05.2014 14:44

Ja bym zrobił to tak:

new x //Liczba pkt. uniku gracza
if((random(100)+1) <= floatround(float(x)/2.0)) // Jee Zrobilismy unik

(random(100)+1) - losowa liczba z przedziału 1,100 (1,100 takze sie wlicza)

floatround(float(x)/2.0) - połowa liczby pkt. gracza bo chciałeś by 2 pkt to 1%

 

To wcale nie jest trudne do wymyślenia xD

Teraz jeśli gracz będzie miał 10 pkt to będzie miał 5% dlaczego?

Bo będzie miał 5% na to że zostanie wylosowana liczba mniejsza lub równa 5


  • +
  • -
  • 1
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika

#3 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Autor tematu
  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Online

Napisano 12.05.2014 15:00

No okej ale czy random nie losuje od 0 do max-1 ?

random(2)  // 0 lub 1

A mój sposób? Jest zły?


  • +
  • -
  • 0

Sprzedam Paczkę CoD pod CS 1.6 (JEST WIELE WERSJI DO WYBORU TEJ PACZKI) na lvl od 201 - 601

Silnik (8 nowych statystyk, poprawiony zapis, dodatkowy exp, pozbyto się CurWeapon). Ponad 100 perków (do wyboru do koloru). Sklep, NOWE MISJE (QUESTY), premium i super premium, AUKCJE, KLANY, zapis nVault, 4 zestawy modeli bronii do wyboru!

JESTEŚ ZAINTERESOWANY KUPNEM? NAPISZ WIADOMOŚĆ DO MNIE!


#4 sebul

    Godlike

  • Junior Admin

Reputacja: 2016
Godlike

  • Postów:5411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 12.05.2014 15:01   Najlepsza odpowiedź

random(100)

Coś takiego losuje nam liczby z przedziału od 0 do 99, czyli jest 100 wartości, więc jeśli damy taki warunek
random(100) < 5

to będzie 5% szansy na jego spełnienie, a jeśli taki
random(100) < 19

to będzie 19% szansy. Chyba reszty nie trzeba tłumaczyć?

A co do warunku
if(!random(unikChance))

on spełni się tylko wtedy, gdy wylosowaną wartością będzie liczba 0, czyli jeśli "unikChance" będzie równe powiedzmy 40, to na spełnienie tego warunku będziemy mieli 1/40, czyli 2.5%.
  • +
  • -
  • 2
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
Generator tabeli expa - aż do 103600 poziomu

#5 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Autor tematu
  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Online

Napisano 12.05.2014 15:08

            new unikChance = floatround(unik_gracza[vid] * 0.5, floatround_floor)
            
            if(random(100) < unikChance)//unik

Takie coś mam czy pierwsza linia jest dobra? Nie chcę dzielić przez 2 (wole mnożenie)


  • +
  • -
  • 0

Sprzedam Paczkę CoD pod CS 1.6 (JEST WIELE WERSJI DO WYBORU TEJ PACZKI) na lvl od 201 - 601

Silnik (8 nowych statystyk, poprawiony zapis, dodatkowy exp, pozbyto się CurWeapon). Ponad 100 perków (do wyboru do koloru). Sklep, NOWE MISJE (QUESTY), premium i super premium, AUKCJE, KLANY, zapis nVault, 4 zestawy modeli bronii do wyboru!

JESTEŚ ZAINTERESOWANY KUPNEM? NAPISZ WIADOMOŚĆ DO MNIE!


#6 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 453
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 12.05.2014 15:34

Nie chcę dzielić przez 2 (wole mnożenie)

 

Ależ nie ma róznicy (no prawie bo nwm jak ująć dzielenie przez 0 mnożeniem)

 

Takie coś mam czy pierwsza linia jest dobra

 

Względnie tak a nawet powiem więcej druga także jest dobra


  • +
  • -
  • 1
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika




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

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