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
 

IntelCom - zdjęcie

IntelCom

Rejestracja: 26.12.2014
Aktualnie: Nieaktywny
Poza forum Ostatnio: 25.06.2019 10:10
-----

#682739 #define ADMINLEVEL ADMIN_LEVEL_C + inna flaga

Napisane przez grankee w 13.01.2015 17:38


#define ADMINLEVEL ADMIN_LEVEL_C
#define ADMINLEVEL ADMIN_LEVEL_E

Nie można zdefiniować drugi raz tego samego. Nawet jak kompilator przepuści, w co wątpię, to będzie źle działało.

 

Jeżeli chcesz aby ADMINLEVEL posiadało wartość obu tych flag:

#define ADMINLEVEL (ADMIN_LEVEL_C & ADMIN_LEVEL_E)

natomiast jeśli ma posiadać dowolną z tych flag:

#define ADMINLEVEL (ADMIN_LEVEL_C | ADMIN_LEVEL_E)

Różnica jest taka, że jak będzie sprawdzał czy ktoś ma level ADMINLEVEL :

if(get_user_flags(id) & ADMINLEVEL)

to pierwszym przypadku ze znaczkiem & sprawdzi czy gracz ma obie te flagi, a w drugim ze znaczkiem | sprawdzi czy ma dowolną z tych flag(przynajmniej jedną)


  • +
  • -
  • 1


#682258 [ROZWIĄZANE] Wyświetlenie odpowiedniej wartości liczbowej na czacie.

Napisane przez NiczegoWinien w 10.01.2015 21:02

Jezeli chcesz tego uzyc aby graczowi sie wyswietlila ta informacja gdy zabije gracza to powinno wygladac tak.

w public Death

client_print(attacker,print_chat, "Brawo!Za zabojstwo dostajesz %d",g_money);

  • +
  • -
  • 1


#682244 [ROZWIĄZANE] Wyświetlenie odpowiedniej wartości liczbowej na czacie.

Napisane przez xenos w 10.01.2015 19:46

client_print(id,print_chat, "Brawo!Za zabojstwo dostajesz %d",g_money);

  • +
  • -
  • 1


#680759 [ROZWIĄZANE] Błąd podczas kompilacji ;)

Napisane przez sebul w 04.01.2015 18:57

Można też tak
if(!is_user_alive(zabojca) && (_:cs_get_user_team(zabojca) != 2))
lub tak
if(!is_user_alive(zabojca) && (cs_get_user_team(zabojca) != CsTeams:2))
albo tak
if(!is_user_alive(zabojca) && (cs_get_user_team(zabojca) != CS_TEAM_CT))
Ogólnie get_user_team może czasami (w niektórych przypadkach) zwrócić złą wartość, bo ona pobiera taką wartość, która nie aktualizuje się na bieżąco.
  • +
  • -
  • 1


#116768 Sprawdzanie liczby klamer w funkcjach

Napisane przez mgr inż. Pavulon w 06.03.2010 14:50

Bracket Counter by Pavulon 4 amxx.pl

Jest to mały programik napisany w Delphi 7 mający na celu sprawdzenie czy dana funkcja (public lub stock) posiada taką samą liczbę klamer otwierających "{" co zamykających "}". W przypadku gdy liczby te są różne wyświetla stosowną informację w której funkcji klamry się nie zgadzają.

Dołączona grafika


Znane błędy:
Program nie radzi sobie z dyrektywami preprocesora #if constant expression, #elseif, #else, #endif
Ma problemy jeżeli dyrektywy zaczynają się poza funkcjami

Załączone pliki


  • +
  • -
  • 29


#680870 Zmienna, a identyfikatory graczy?

Napisane przez GwynBleidD w 05.01.2015 01:00

Jeśli zginie 2ch graczy jednocześnie to są to 2 różne śmierci, co oznacza że wykonają się 2 osobne eventy śmierci. Każdy dla jednego gracza (a ściślej dla pary zabójca - ofiara).
  • +
  • -
  • 1


#680873 Zmienna, a identyfikatory graczy?

Napisane przez grankee w 05.01.2015 01:36


Tak i jest to tablica 32 wymiarowa.

Ale równie dobrze, jeżeli tworzysz tablice 33 wymiarowa

Uważniej dobieraj określenia, to jest tablica 33 wymiarowa:

new tablica[1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1] 

a to czego potrzebujesz to tablica 33 elementowa, nie że się czepiam, raz mogłeś się przejęzyczyć, ale drugi to już roztargnienie :P

 


przy czym wtedy element 0 i 33 pozostaje pusty

w tablicy 33 elementowej nie istnieje element 33 więc nie może być on pusty.

 

 

 

IntelCom, znajdź jakiś dobry kurs C++, poznasz podstawy, co to jest zmienna, co to jest tablica, itd itp. Bardzo Ci się przyda. Jeśli chcesz się coś więcej bawić to przeczytaj Symfonię C++ Grebosza, sam jestem tylko po prostym kursie z neta i kilku latach praktyki (dupnej bo głównie w pisaniu pluginów), a czytam teraz tą książkę z zainteresowaniem i dowiaduję się nowych rzeczy.


  • +
  • -
  • 3


#680858 Zmienna, a identyfikatory graczy?

Napisane przez Wielkie Jol w 05.01.2015 00:07

Amxx jest jednowatkowy, nawet jeżeli zginą jednocześnie, to i tak najpierw wykona się coś a potem coś.
  • +
  • -
  • 1


#680853 Zmienna, a identyfikatory graczy?

Napisane przez Wielkie Jol w 04.01.2015 23:47

Tablica - czasem nazywana zmienną tablicowa. Jak zwał tak zwał.

A jak inaczej chciałbyś przechować id graczy? Po co tworzyć 32 zmienne, skoro wszystkim można operować właśnie za pomocą tablicy? No chyba, że chcesz mieć id tylko jednego gracza, to wtwdy tworzenie tablicy nie ma za bardzp sensu.

Co do eventu, twórcy amxxa tak po prostu zrobili, że w danym evencie ( w tym przypadku event śmierci ) możesz spbie pobrać najważniejsze id. Dla evemtu np. Z pieniędzmi będą to pieniądze a dla eventu z broniami - broń jaką gracz posiada. Nie musisz robic czegoś takiego jak new killer = read_data (1) ale jest to dobrym nawykiem programowania, bo gdybyś miał operować Np.
Read_data (1..5
W pliku źródłowym to na bank byś nie zapamiętał który numer za co odpowiada i pewnie tak samo osoba przegladajaca kod.

Wpisz w internecie pawn amxmodx otworz pierwszy z brzegu link, tam masz ładnie wszystko opisane.
  • +
  • -
  • 1


#680844 Zmienna, a identyfikatory graczy?

Napisane przez Wielkie Jol w 04.01.2015 23:08

Tak i jest to tablica 33 elementowa.
  • +
  • -
  • 1


#680741 [ROZWIĄZANE] Pytanie odnoście funkcji cs_set_user_money?

Napisane przez radim w 04.01.2015 17:52

Usuń "cs_get_user_money(zabojca)" albo jeżeli chcesz aby dodało tyle pieniędzy ile uzwględniłeś w cvarze do aktualnej kasy którą mamy zamień na to:

cs_set_user_money( zabojca, cs_get_user_money( zabojca ) + get_pcvar_num( g_money ), 1 )

  • +
  • -
  • 1


#680736 [ROZWIĄZANE] Pytanie odnoście funkcji cs_set_user_money?

Napisane przez radim w 04.01.2015 17:39

Za dużo argumentów. Maksymalnie ta funkcja ma mieć 3 argumenty, kolejno: id gracza, wartość oraz 'flash' (czyli czy ma pokazać różnice w HUD) domyślnie ustawiona na 1.


  • +
  • -
  • 1


#680691 [ROZWIĄZANE] Błąd podczas kompilacji ;)

Napisane przez venom1324 w 04.01.2015 15:50

#include <amxmodx>
#include <cstrike>

#define PLUGIN "money"
#define VERSION "1.0"
#define AUTHOR "intel"

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_event("DeathMsg", "DeathMsg", "a")
}
public DeathMsg()
{
	new zabojca=read_data(1);
	if(!is_user_alive(zabojca) && (get_user_team(zabojca) != 2))
	{
	return PLUGIN_CONTINUE;
	}
	cs_set_user_money(zabojca, cs_get_user_money(zabojca)+500, 1);
	return PLUGIN_CONTINUE;
}

Tak powinno być. Błąd był dlatego, że zmienna "zabojca" nie była rodzajem CsTeams, i polecam użycia get_user_team zamiast cs_get_user_team. Dodatkowo negacje przeprowadziłem poprawnie, w Twojej był błąd.

 

Pozdrawiam, Piotrek.


  • +
  • -
  • 1


#680688 [ROZWIĄZANE] Błąd podczas kompilacji ;)

Napisane przez Petpat w 04.01.2015 15:39

public DeathMsg()
{
new zabojca=read_data(1);
if(!is_user_alive(zabojca) && cs_get_user_team(zabojca) == CS_TEAM_CT)
return PLUGIN_CONTINUE

cs_set_user_money(zabojca, cs_get_user_money(zabojca)+500, 1);
return PLUGIN_CONTINUE;
}


Po co stawiasz negacje przy sprawdzaniu teamu ?
  • +
  • -
  • 1


#680397 Błędy podczas kompilacji pliku

Napisane przez Toldi w 03.01.2015 19:03

Nie potrzebnie dałeś średnik ; 

 

if(!is_user_alive(zabojca)); <<<<----- nie potrzebny 

 

trzymaj poprawiłem  

#include <amxmodx>
#include <fun>


#define PLUGIN "money"
#define VERSION "1.0"
#define AUTHOR "intel"


public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg", "DeathMsg", "a")
}
public DeathMsg()
{
new zabojca=read_data(1);
if(!is_user_alive(zabojca))
{
return PLUGIN_CONTINUE;
}
set_user_health(zabojca, 130);
return PLUGIN_CONTINUE;
}

Licze na <ciach>  ;)  ;)


  • +
  • -
  • 0