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.
|
najlepszy gracz rundy
#1
Napisano 03.05.2009 22:16
1. najlepszego gracza rundy
2. jak mnie ktos zabije to ile hp mu pozostalo
3. j/w tylko ile armora
4. ile osob zabil
5. ile strzelil hs
#2
Napisano 03.05.2009 22:20
2. po smierci sprawdzic jego zycie np get_user_health
3. tak samo tylko armor
4. trzeba liczyc
5. trzeba liczyc
Mowiac inaczej gotowej funkcji na to nie ma (trzeba w odpowiednim miejscu uzyc odpowiedniej(ich) funkcji by uzyskac w/w efekty).
#3
Napisano 03.05.2009 22:34
#4
Napisano 03.05.2009 22:56
Co innego jesli chcesz miec konkretny plugin, to mowisz o co chodzi dokladniej, ale jak chcesz sie uczyc to troche cie pomecze bys sam to umial robic predzej czy pozniej
#5
Napisano 04.05.2009 12:11
#6
Napisano 04.05.2009 14:32
#7
Napisano 04.05.2009 14:36
PS mozesz mi powiedziec a raczej wytluamcyzc o co chodzi z tym read_data(1) , read_data(2) itd plz
#8
Napisano 04.05.2009 15:29
#9
Napisano 04.05.2009 17:15
#10
Napisano 04.05.2009 17:32
#include <amxmodx> #include <amxmisc> public plugin_init() { register_event("DeathMsg", "DeathMsg", "a") } public DeathMsg() { new kid = read_data(1) //zabujca new vid = read_data(2) // ofiara new hs = read_data(3) // HeadShot (1 == true) new weapon[64] read_data(4,weapon,63) //krotka nazwa broni (bez weapon_ / CSW_ ) new kname[32] new vname[32] get_user_name(kid,kname,31) get_user_name(vid,vname,31) if(hs) client_print(0,print_chat,"Gracz %s zabil %s strzalem w glowe z %s",kname,vname,weapon) }
#11
Napisano 04.05.2009 19:09
nie bylem swiadomy ze istnieje takowa funkcja... pewnie ulatwi ci pare spraw
#12
Napisano 05.05.2009 07:41
---------------------------------------
przyjralem sie teraz troche tej funkcji i moze sie uda jednak to zrobic jak wroce do domu to sprwade napisze jakis banalny pluginek i jak wspomnialem dam ci kod i oblukasz
#13
Napisano 05.05.2009 08:14
#14
Napisano 05.05.2009 19:52
#15
Napisano 05.05.2009 20:14
Ustalenie ze "najlepszy" gracz to jest 1. gracz na liscie, nastepnie w petli sprawdzic czy istnieje jeszcze lepszy gracz, jesli tak to zmieniasz "najlepszego" na tego co wlasnie pobil starego najlepszego i szukasz dalej czy moze dalej nie ma kogos najlepszego i tak az do ostatniego gracza.
Po wykonaniu tego w zmiennej przechowujacej "najlepszego" gracza, bedzie faktycznie najlepszy gracz (moze byc problem gdy wiecej niz 1 gracz ma staty najlepszego gracza).
#16
Napisano 05.05.2009 20:23
jest koniec rundy na say dla wszystkich wyswietla sie:
- Najlepszym graczem rundy jest %s np Miczu!
- Zabil %s graczy! np 3
- Jebnol %s HeadShoty!! np 2
wczesniej mowilem ze sprobuje napisac tego pluga wiec lap
#include <amxmodx> #include <amxmisc> #define PLUGIN "Info_po_smierci" #define VERSION "1.0" #define AUTHOR "Sinoku" new SayText; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("DeathMsg", "DeathMsg", "a") SayText = get_user_msgid("SayText"); } public DeathMsg() { new kid = read_data(1) //zabujca new hs = read_data(2) // HeadShot (1 == true) new hp = read_data(3) // ilosc hp pozostalego new ap = read_data(4) // ilosc armora jaki mu zostal new weapon[64] read_data(5,weapon,63) //krotka nazwa broni (bez weapon_ / CSW_ ) new kname[32] get_user_name(kid,kname,31) new health[30] get_user_health(hs,health,29) new armor[28] get_user_armor(ap,armor,27) kolor_text(id, "^x04 [ AnimaLibera ] ^x03Zostales zabity przez ^x04 %s - [ HP: %s AP: %s ]", kname, health, armor) if(hs) { kolor_text(id, "^x04 Gracz ^x03 %s ^x04 jebnol ci HeadShota! w glowe z ^x03 %s",kname,weapon) } } stock kolor_text(index, const wiadomosc[]) { new text[192]; formatex(text, 191, wiadomosc); message_begin(MSG_ONE, SayText, _, index); write_byte(index); write_string(text); message_end(); }
wez pwoiedz mi o co chodzi z tymi cyframi new kname[32] bo nie kapuje i wez popraw tego pluga proszę
#17
Napisano 05.05.2009 21:01
oznacza tablice o podanej liczbie elementow (od 0 do N-1). Tablica moze zawierac znaki (litery) lub cyfry (new Float: xyz[N] - tablica liczb zmienno przecinkowych).
Jak sie latwo dymyslic w jednej jednosce pamieci calego nicku nie zmiescisz wiec podajemy tablice o szacunkowej liczbie elementow ktora zmiesci nick.
Tak wiec w tablicach przechowujemy takie rzeczy jak: nick, ip, sid,nazwe teamu, sciezke do pliku itp. Liczby typu hp, ammo miesci sie w pojedynczej zmiennej
Vectory typu polozenie na mapie, predkosc, kierunek patrzenia, rozmiar obiektu, punkt na mapie sa przechowywane w tablicy 3 elementowej liczb (najczesciej typu float).
Formatowanie wiadomosci/napisow:
%s - string - ciag znakowy
%d - interer - liczba calkowita
%f - float - liczba zmienno przecinkowa
Jak wyzej mowilem to zycie i armor nie jest tablica znakowa i polecam funcwiki by zobaczyc jak wyglada dana funkcja (jakie parametry), przyklad interpetacji:
get_user_name ( index, name[], len ) - 1. id gracza, 2. tablica do przechowywania ciagu [], dlugosc N-1 tablicy
get_user_health ( id ) - tylko jeden parametr - id gracza
Funkcje ktore zwracaja int/float w wiekszosci wykozystuje sie w ten sposob:
ZMIENNA = funkcja_zwracajaca_liczbe
#18
Napisano 05.05.2009 21:30
#include <amxmodx> #include <amxmisc> #define PLUGIN "Info_po_smierci" #define VERSION "1.0" #define AUTHOR "Sinoku" new SayText; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("DeathMsg", "DeathMsg", "a") SayText = get_user_msgid("SayText"); } public DeathMsg() { new kid = read_data(1) //zabujca new hs = read_data(2) // HeadShot (1 == true) new weapon[64] read_data(5,weapon,63) //krotka nazwa broni (bez weapon_ / CSW_ ) new kname[32] get_user_name(kid,kname,31) health = get_user_health(id) armor = get_user_armor(id) kolor_text(id, "^x04 [ AnimaLibera ] ^x03Zostales zabity przez ^x04 %s - [ HP: %s AP: %s ]", kname, health, armor) if(hs) { kolor_text(id, "^x04 Gracz ^x03 %s ^x04 jebnol ci HeadShota! w glowe z ^x03 %s",kname,weapon) } } stock kolor_text(index, const wiadomosc[]) { new text[192]; formatex(text, 191, wiadomosc); message_begin(MSG_ONE, SayText, _, index); write_byte(index); write_string(text); message_end(); }
PS to jak napisal bys mit en plugin co wyzej podalem ??? ten co wyswietla na koniec rundy proszę
#19
Napisano 05.05.2009 21:51
Zmienna ktora pojawia sie pierwszy raz w danej funkcji, musi sie zaczac od new (deklaracja zmiennej).
PS. myslalem ze chcesz tylko poznac funkcje a reszte sam zrobisz
#20
Napisano 05.05.2009 21:53
#include <amxmodx> #include <amxmisc> #define PLUGIN "Info_po_smierci" #define VERSION "1.0" #define AUTHOR "Sinoku" new SayText; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("DeathMsg", "DeathMsg", "a") SayText = get_user_msgid("SayText"); } public DeathMsg() { new health new armor new kid = read_data(1) //zabujca new hs = read_data(2) // HeadShot (1 == true) new weapon[64] read_data(5,weapon,63) //krotka nazwa broni (bez weapon_ / CSW_ ) new kname[32] get_user_name(kid,kname,31) new health = get_user_health(id) new armor = get_user_armor(id) kolor_text(id, "^x04 [ AnimaLibera ] ^x03Zostales zabity przez ^x04 %s - [ HP: %s AP: %s ]", kname, health, armor) if(hs) { kolor_text(id, "^x04 Gracz ^x03 %s ^x04 jebnol ci HeadShota! w glowe z ^x03 %s",kname,weapon) } } stock kolor_text(index, const wiadomosc[]) { new text[192]; formatex(text, 191, wiadomosc); message_begin(MSG_ONE, SayText, _, index); write_byte(index); write_string(text); message_end(); }tak to powinno wygladac ????
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych