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] Pole bitowe lepszą alternatywą tablic bitów (objasnenie)


Najlepsza odpowiedź GwynBleidD, 05.11.2013 20:31

Gdy stosujesz bity, nie używasz WCALE tablicy. Jednakże! Uwaga na jedną rzecz... 32 bitowa zmienna ma, jak nazwa wskazuje, 32 bity, tyle samo jest graczy, jednak gracze są numerowani od 1 do 32, a bity od 0 do 31, dlatego musisz używać

if(CheckBit(players, id-1))

Czego benio już nie napisał w tutorialu

Przejdź do postu


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

#1 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Offline

Napisano 05.11.2013 07:46

W swoim TuTku Benio101 pisze:

 

Kolejną zaletą jest możliwość bardzo sprawnego wyzerowania bitów dla wszystkich graczy:players=0;

zamiast

for(new i=1; i<=32; ++i){    players[i]=false;}

 
Łopatologicznie, używamy:

if(CheckBit(players, id))

zamiast

if(players[id])

przy sprawdzaniu bitu.
 

SetBit(players, id);

zamiast

players[id]=true;

przy ustawianiu bitu na "tak".
 

ClearBit(players, id);

zamiast

players[id]=false;przy ustawianiu bitu na "nie".

 

 

A ja mam pytanie

1.Jak zastosować to do np. takiego perku? Bo tam jest ma_perk[33]?

2.Czy powinno dawać sie [33] czy [32]??

#include <amxmodx>
#include <hamsandwich>
#include <codmod>

#define DMG_BULLET (1<<1)

new const perk_name[] = "Tajemnica Szturmowca";
new const perk_desc[] = "Dostajesz M4A1 i dodatkowe 10 obrazen z niego";

new bool:ma_perk[33];

public plugin_init()
{
        register_plugin(perk_name, "1.0", "QTM_Peyote");
  
        cod_register_perk(perk_name, perk_desc);
        RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}

public cod_perk_enabled(id)
{
        cod_give_weapon(id, CSW_M4A1);
        ma_perk[id] = true;
}

public cod_perk_disabled(id)
{
        cod_take_weapon(id, CSW_M4A1);
        ma_perk[id] = false;
}
  
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
        if(!is_user_connected(idattacker))
                return HAM_IGNORED;
  
        if(!ma_perk[idattacker])
                return HAM_IGNORED;
  
        if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_M4A1 && damagebits & DMG_BULLET)
                cod_inflict_damage(idattacker, this, 10.0, 0.0, idinflictor, damagebits);
          
        return HAM_IGNORED;
}

  • +
  • -
  • 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 sebul

    Godlike

  • Junior Admin

Reputacja: 2016
Godlike

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

Napisano 05.11.2013 08:44

Chcesz mieć lub masz serwer 32 slotowy? Masz serwer 32 bitowy? Daruj sobie te bity ^ ^
A jak to stosować? Chyba nie przeczytałeś dokładnie tego co benio tam napisał.
  • +
  • -
  • 0
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

#3 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Autor tematu
  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Offline

Napisano 05.11.2013 16:05

Chcesz mieć lub masz serwer 32 slotowy? Masz serwer 32 bitowy? Daruj sobie te bity ^ ^
A jak to stosować? Chyba nie przeczytałeś dokładnie tego co benio tam napisał.

Należe do ciekawskich, więc pytam czy 33 czy 32

 


A jak to stosować? Chyba nie przeczytałeś dokładnie tego co benio tam napisał.

 

Czytałem to chyba z 8 razy. I dalej nie wiem.

ma_perk[id] = false;

to mam to zamienić na to?:

ClearBit(ma_perk, id);

  • +
  • -
  • 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 05.11.2013 16:13

Chcesz mieć lub masz serwer 32 slotowy? Masz serwer 32 bitowy? Daruj sobie te bity ^ ^
A jak to stosować? Chyba nie przeczytałeś dokładnie tego co benio tam napisał.

Należe do ciekawskich, więc pytam czy 33 czy 32

Ani 33, ani 32.
  • +
  • -
  • 0
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
Offline

Napisano 05.11.2013 16:17

 

 

Chcesz mieć lub masz serwer 32 slotowy? Masz serwer 32 bitowy? Daruj sobie te bity ^ ^
A jak to stosować? Chyba nie przeczytałeś dokładnie tego co benio tam napisał.

Należe do ciekawskich, więc pytam czy 33 czy 32

 

Ani 33, ani 32.

 

Czy powinno dawać sie [33] czy [32]??
( to pytanie nie jest związane z tutem Benia101)


Użytkownik TibacK edytował ten post 05.11.2013 16:25

  • +
  • -
  • 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 sebul

    Godlike

  • Junior Admin

Reputacja: 2016
Godlike

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

Napisano 05.11.2013 16:27

A zaraz... Tobie chodzi o to jak po prostu powinno się robić bez tych bitów? Bez bitów dajesz 33-elementową tablicę, a najlepiej dawać MAKSYMALNA_ILOSC_SLOTOW+1, tylko wtedy należy koniecznie pamiętać o tym, przy zwiększaniu liczby slotów, przy zmniejszaniu niby też, ale akurat zmniejszenie liczby slotów nie będzie powodować żadnych błędów.
  • +
  • -
  • 1
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

#7 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Autor tematu
  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Offline

Napisano 05.11.2013 16:30


A zaraz... Tobie chodzi o to jak po prostu powinno się robić bez tych bitów?

Przepraszam, wprowadziłem troche zamętu.

_______________

 

Maxymalna ilosc slotów ?

Przecież get_maxplayers() samo zwieksza i zmniejsza sloty wiec w czym problem?


  • +
  • -
  • 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!


#8 sebul

    Godlike

  • Junior Admin

Reputacja: 2016
Godlike

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

Napisano 05.11.2013 16:33

Przecież get_maxplayers() samo zwieksza i zmniejsza sloty wiec w czym problem?

Spróbuj skompilować coś takiego
new tablica[get_maxplayers()+1];

czy nawet
new ile=20;
new tablica[ile+1];

  • +
  • -
  • 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

#9 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Autor tematu
  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Offline

Napisano 05.11.2013 16:38

Aaaa okej czaje...

trzeba zrobic przez

#define SLOTY 32

ale skoro graczy jest 32 to po co jedna dodatkowa komórka?


  • +
  • -
  • 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!


#10 sebul

    Godlike

  • Junior Admin

Reputacja: 2016
Godlike

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

Napisano 05.11.2013 16:41

Dając 32-elementową tablicę, indeksy masz od 0 do 31, a 32 gracz na serwerze potrzebuje 32 indeksu, chyba żebyś zawsze od id gracza odejmował 1, ale po co sobie życie utrudniać?
  • +
  • -
  • 1
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

#11 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Autor tematu
  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Offline

Napisano 05.11.2013 16:42

Super. A teraz wróćmy do perku


Czytałem to chyba z 8 razy. I dalej nie wiem.

ma_perk[id] = false;

to mam to zamienić na to?:

ClearBit(ma_perk, id);



  • +
  • -
  • 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!


#12 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6033
Godlike

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

Napisano 05.11.2013 16:49

Zapraszam

http://amxx.pl/topic...scripting-amxx/

http://amxx.pl/topic...scripting-amxx/

 

https://forums.allie...ead.php?t=94381


  • +
  • -
  • 0

#13 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Autor tematu
  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Offline

Napisano 05.11.2013 16:55

Mi chodiz o ten jeden przykład.

I będę wiedział jak stosowac


  • +
  • -
  • 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!


#14 GwynBleidD

    Godlike

  • Administrator

Reputacja: 1849
Godlike

  • Postów:3066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 05.11.2013 20:31   Najlepsza odpowiedź

Gdy stosujesz bity, nie używasz WCALE tablicy. Jednakże! Uwaga na jedną rzecz... 32 bitowa zmienna ma, jak nazwa wskazuje, 32 bity, tyle samo jest graczy, jednak gracze są numerowani od 1 do 32, a bity od 0 do 31, dlatego musisz używać

if(CheckBit(players, id-1))

Czego benio już nie napisał w tutorialu


  • +
  • -
  • 2
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark

#15 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Autor tematu
  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Offline

Napisano 06.11.2013 18:49

czyli np.zamiast ma_perk[33]  daje ma_perk

i aby ustawic na false daje:

ClearBit(ma_perk, id)

??

 

czy moze

ClearBit(ma_perk, id-1)

  • +
  • -
  • 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!





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

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