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

Ruletka w Diablo Modzie (co mapę)


Najlepsza odpowiedź GwynBleidD, 22.10.2014 16:57

1. stwórz CellTrie

2. Zapisuj w niej po użyciu komendy adres IP / Nick / SteamID

3. Po wejściu gracza na serwer sprawdzaj, czy wpis istnieje w Trie, jeśli istnieje ustawiaj blokadę na true, jeśli nie istnieje na false

4. Przed wykonaniem komendy sprawdzaj blokadę.

 

W ciągu mapy rzadko się zdarza, by ktoś zmienił IP albo żeby 2 osoby weszły z tego samego, ale się zdarza więc lepiej zapisywać nick lub SteamID.

Przejdź do postu


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
10 odpowiedzi w tym temacie

#1 he1st

    Diablo Mody i te sprawy ;3

  • Użytkownik

Reputacja: 132
Zaawansowany

  • Postów:357
  • GG:
  • Imię:Michał
  • Lokalizacja:Legionowo
Offline

Napisano 21.10.2014 13:37

Witajcie. Mam zamiar zrobić ruletkę do Diablo Moda, lecz muszę sprawić, żeby wpisywanie komendy "/ruletka" było możliwe co mapę. Znacie na to jakiś sposób?? :3

 

 

@Edit

 

Chodzi głównie o to, żeby gracz mógł wpisać komendę /ruletka co mapę. Resztą się zajmę ^D^


Użytkownik !_0ne_! edytował ten post 21.10.2014 13:39

  • +
  • -
  • 0

b_350_20_000000_000000_FFFFFF_DA0707.png
b_350_20_000000_000000_FFFFFF_DA0707.png


#2 WeBsteR

    Wszechwidzący

  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:297
  • Imię:dawid
  • Lokalizacja:Rzeszów
Offline

Napisano 21.10.2014 14:27

Skorzystaj z tego tematu:

  http://amxx.pl/topic...y-raz-na-rundy/

new bool:block[33];
public client_connect(id)
    block[id] = true;
public los(id)
{
 
if(!is_user_alive(id) || !is_user_connected(id))
return PLUGIN_CONTINUE;
if(block[id]){ // sprawdzamy czy wartosc nie przyjmuje true
ColorChat(id, NORMAL, "Ta opcje mozna uzyc raz na mape!"); // gracz uzyl komendy wyswietlamy tekst, o tym
return PLUGIN_HANDLED; // zatrzymujemy dzialanie pluginu
}
// nie uzyl jeszcze komendy
block[id] = true; // ustawiamy wartosc na true, by nie mogl jej uzyc po raz kolejny
set_hudmessage(0, 255, 0, 0.41, 0.29, 0, 6.0, 1.0)
show_hudmessage(id, "Trwa losowanie!")
new totek = random_num(0, 1);
 
switch(totek)
{
case 0:
{
///// kod po wylosowaniu opcji 1
}
case 1:
{
///// kod po wylosowaniu opcji 2
}
}
return PLUGIN_CONTINUE
}

Mam nadzieje, że coś z tego tematu wyciągniesz ;)


  • +
  • -
  • 0
Zabijaka Gryps to mój autorytet!

#3 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

  • Postów:1 258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 21.10.2014 14:48

Skorzystaj z tego tematu:

  http://amxx.pl/topic...y-raz-na-rundy/

new bool:block[33];
public client_connect(id)
    block[id] = true;
public los(id)
{
 
if(!is_user_alive(id) || !is_user_connected(id))
return PLUGIN_CONTINUE;
if(block[id]){ // sprawdzamy czy wartosc nie przyjmuje true
ColorChat(id, NORMAL, "Ta opcje mozna uzyc raz na mape!"); // gracz uzyl komendy wyswietlamy tekst, o tym
return PLUGIN_HANDLED; // zatrzymujemy dzialanie pluginu
}
// nie uzyl jeszcze komendy
block[id] = true; // ustawiamy wartosc na true, by nie mogl jej uzyc po raz kolejny
set_hudmessage(0, 255, 0, 0.41, 0.29, 0, 6.0, 1.0)
show_hudmessage(id, "Trwa losowanie!")
new totek = random_num(0, 1);
 
switch(totek)
{
case 0:
{
///// kod po wylosowaniu opcji 1
}
case 1:
{
///// kod po wylosowaniu opcji 2
}
}
return PLUGIN_CONTINUE
}

Mam nadzieje, że coś z tego tematu wyciągniesz ;)

 

A kiedy gracz będzie mógł użyć tej komendy? Bo ja nie widzę takiej możliwości w kodzie, który podałeś, bo wartość przy połączeniu powinna być ustawiona na false. Dwa, ta opcja jest dobra, dopóty, dopóki gracz nie wyjdzie z serwera. Jeżeli wyjdzie, wartość ponownie zostanie ustawiona na false, dlatego przydałoby się zrobić zapis do pliku i najzwyczajniej czyścić plik w funkcji plugin_end.


  • +
  • -
  • 0

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.


#4 he1st

    Diablo Mody i te sprawy ;3

  • Autor tematu
  • Użytkownik

Reputacja: 132
Zaawansowany

  • Postów:357
  • GG:
  • Imię:Michał
  • Lokalizacja:Legionowo
Offline

Napisano 21.10.2014 14:52

Hmm, dzięki za propozycję. Przetestuję i dam edita.   ;)

 

 

@Wielkie Jol

 

 

Client connect masz block[id] = false;, ale zapis do pliku jak dam, to i tak nic mi to nie da, bo cały czas przy wczytywaniu, będzie ten sam parametr :D

 

 

Edit2

 

myślałem jeszcze nad porównaniem dwóch map pod względem nazwy. Wiadomo, że jak nazwy się różnią to znaczy, że się zmieniła.


Użytkownik MS.Zer0. edytował ten post 21.10.2014 15:10

  • +
  • -
  • 0

b_350_20_000000_000000_FFFFFF_DA0707.png
b_350_20_000000_000000_FFFFFF_DA0707.png


#5 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

  • Postów:1 258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 21.10.2014 16:22

Hmm, dzięki za propozycję. Przetestuję i dam edita.   ;)

 

 

@Wielkie Jol

 

 

Client connect masz block[id] = false;, ale zapis do pliku jak dam, to i tak nic mi to nie da, bo cały czas przy wczytywaniu, będzie ten sam parametr :D

 

 

Edit2

 

myślałem jeszcze nad porównaniem dwóch map pod względem nazwy. Wiadomo, że jak nazwy się różnią to znaczy, że się zmieniła.

 

W żadnym wypadku, nie będzie cały czas ten sam parametr, bo przy łączeniu się do gry sprawdzisz w pliku, czy grasz nie ma wartości na true, jeżeli ma no to najzwyczajniej mu taką ustawiasz. Wszystko czyścisz tak jak powiedziałem w funkcji plugin_end(), która wywołuje się na koniec mapy.


  • +
  • -
  • 0

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.


#6 he1st

    Diablo Mody i te sprawy ;3

  • Autor tematu
  • Użytkownik

Reputacja: 132
Zaawansowany

  • Postów:357
  • GG:
  • Imię:Michał
  • Lokalizacja:Legionowo
Offline

Napisano 21.10.2014 17:39

@Wielkie Jol

 

Zawsze mogę spróbować. ;P zobaczymy jak to wyjdzie. Tylko czy jest sens robienia dodatkowego "pliku" skoro zawsze można pobawić się zmiennymi ?? :D Skoro w plugin_end ma być "czyszczenie", to czemu po prostu nie zrobić w plugin_end jakiegoś taska?


  • +
  • -
  • 0

b_350_20_000000_000000_FFFFFF_DA0707.png
b_350_20_000000_000000_FFFFFF_DA0707.png


#7 he1st

    Diablo Mody i te sprawy ;3

  • Autor tematu
  • Użytkownik

Reputacja: 132
Zaawansowany

  • Postów:357
  • GG:
  • Imię:Michał
  • Lokalizacja:Legionowo
Offline

Napisano 21.10.2014 17:39

 

Hmm, dzięki za propozycję. Przetestuję i dam edita.   ;)

 

 

@Wielkie Jol

 

 

Client connect masz block[id] = false;, ale zapis do pliku jak dam, to i tak nic mi to nie da, bo cały czas przy wczytywaniu, będzie ten sam parametr :D

 

 

Edit2

 

myślałem jeszcze nad porównaniem dwóch map pod względem nazwy. Wiadomo, że jak nazwy się różnią to znaczy, że się zmieniła.

 

W żadnym wypadku, nie będzie cały czas ten sam parametr, bo przy łączeniu się do gry sprawdzisz w pliku, czy grasz nie ma wartości na true, jeżeli ma no to najzwyczajniej mu taką ustawiasz. Wszystko czyścisz tak jak powiedziałem w funkcji plugin_end(), która wywołuje się na koniec mapy.

 

 

 

Zawsze mogę spróbować. jezyk.gif zobaczymy jak to wyjdzie. Tylko czy jest sens robienia dodatkowego "pliku" skoro zawsze można pobawić się zmiennymi ?? biggrin.png Skoro w plugin_end ma być "czyszczenie", to czemu po prostu nie zrobić w plugin_end jakiegoś taska?


  • +
  • -
  • 0

b_350_20_000000_000000_FFFFFF_DA0707.png
b_350_20_000000_000000_FFFFFF_DA0707.png


#8 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

  • Postów:1 258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 21.10.2014 17:55

Chodzi o to, że po wyjściu gracza z serwera zmienne mu przydzielone się zerują, czyli znowu są ustawione na false, czyli gracz może wychodzić z serwera i wchodzić po to, by jeszcze raz skorzystać z komendy. 


  • +
  • -
  • 0

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.


#9 he1st

    Diablo Mody i te sprawy ;3

  • Autor tematu
  • Użytkownik

Reputacja: 132
Zaawansowany

  • Postów:357
  • GG:
  • Imię:Michał
  • Lokalizacja:Legionowo
Offline

Napisano 21.10.2014 20:55

Hmm czyli jednak trzeba będzie zrobić ruletkę jako automat np. po 1minucie od zmiany mapy z wylosowaniem gracza. A skoro to dla mnie nowość to i tak będę potrzebować waszej pomocy (No tak, 8 miechów edycji diablo, a nie umiem sobie poradzić z ruletką ^D^).

 

Niemniej dzięki za dotychczasową pomoc ;P


  • +
  • -
  • 0

b_350_20_000000_000000_FFFFFF_DA0707.png
b_350_20_000000_000000_FFFFFF_DA0707.png


#10 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

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

Napisano 22.10.2014 16:57   Najlepsza odpowiedź

1. stwórz CellTrie

2. Zapisuj w niej po użyciu komendy adres IP / Nick / SteamID

3. Po wejściu gracza na serwer sprawdzaj, czy wpis istnieje w Trie, jeśli istnieje ustawiaj blokadę na true, jeśli nie istnieje na false

4. Przed wykonaniem komendy sprawdzaj blokadę.

 

W ciągu mapy rzadko się zdarza, by ktoś zmienił IP albo żeby 2 osoby weszły z tego samego, ale się zdarza więc lepiej zapisywać nick lub SteamID.


  • +
  • -
  • 0

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


#11 he1st

    Diablo Mody i te sprawy ;3

  • Autor tematu
  • Użytkownik

Reputacja: 132
Zaawansowany

  • Postów:357
  • GG:
  • Imię:Michał
  • Lokalizacja:Legionowo
Offline

Napisano 24.11.2014 12:21

1. stwórz CellTrie

2. Zapisuj w niej po użyciu komendy adres IP / Nick / SteamID

3. Po wejściu gracza na serwer sprawdzaj, czy wpis istnieje w Trie, jeśli istnieje ustawiaj blokadę na true, jeśli nie istnieje na false

4. Przed wykonaniem komendy sprawdzaj blokadę.

 

W ciągu mapy rzadko się zdarza, by ktoś zmienił IP albo żeby 2 osoby weszły z tego samego, ale się zdarza więc lepiej zapisywać nick lub SteamID.

Dzięki Gwyn jak zawsze pomocny :P


  • +
  • -
  • 0

b_350_20_000000_000000_FFFFFF_DA0707.png
b_350_20_000000_000000_FFFFFF_DA0707.png





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

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