Witam.
Mam pytanie?
Jak zrobić funkcje która sprawdza ilość czasu i fragów i jak są spełnione wymagania daję np: 5 hp co rundę?
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.
|
Napisano 28.09.2014 16:18
Witam.
Mam pytanie?
Jak zrobić funkcje która sprawdza ilość czasu i fragów i jak są spełnione wymagania daję np: 5 hp co rundę?
Napisano 28.09.2014 16:28
If you can dream it, you can do it.
Napisano 28.09.2014 16:44
thx
Edit ::
jaki jest Public do user_time i user_frags if get_user_time(index, flag=20) //// to 20 odpowiada za godzinę ? if get_user_frags(id) //// jak dodać wymaganą ilość fragów? set_user_health(id,get_user_health(id)+5)
Użytkownik Frezzi edytował ten post 28.09.2014 17:00
Napisano 28.09.2014 18:08
client_print( id, print_chat, "Od Twojego polaczenia z serwerem minelo juz %d SEKUND i masz %d fragów", get_user_time(id), get_user_frags(id) )
get_user_time - zwraca czas gry gracza. Gdy drugi parametr funkcji czyli 'flag' będzie różny od 0 (0 jest domyślnie ustawione dlatego przy wykorzystaniu funckji, nie podałem wartości dla tego parametru) to nie uwzględni czasu od połączenia do wejścia na serwer. Dla jasności, połączenie z serwerem występuję wtedy połączysz się z serwer poprzez komendę connect lub w inny sposób, czyli od zaczęcia się ładowania połączenia, a wejście to już wtedy gdy gracz już widzi mapę tuż po połączeniu i może wybrać team. Na podobnej zasadzie działają funckję: client_connect i client_putinserver. Pamiętaj, czas zwracany przez funkcję get_user_time jest podawany w sekundach.
Jeżeli chcesz dać wymaganą ilość to musisz w warunku zastosować znaki nierówności czyli: > (większe), < (mniejsze), == (równe), <= (mniejsze lub równe), >=(większe lub równe).
Przykład:
#include < amxmodx > #include < amxmisc > public plugin_init( ) { register_plugin( "Test czasu i fragow", "1.0", "amxx.pl" ) register_clcmd( "say /sprawdz", "Sprawdz" ) } public Sprawdz( id ) { if( !is_user_connected( id ) ) return; if( get_user_time( id ) >= 1000 ) { if( get_user_frags( id ) < 10 ) client_print( id, print_chat, "Przez %d zdobyles %d fragow, czyli mniej niz 10. Jestes slaby!", get_user_time( id ), get_user_frags( id ) ) else client_print( id, print_chat, "Przez %d zdobyles %d fragow, czyli masz wiecej lub rowne 10. Kozak! :)", get_user_time( id ), get_user_frags( id ) ) } else client_print( id, print_chat, "Nie przegrales nawet 1000 sekund na serwerze. Polaczany z serwerem jestes dopiero od %d sekund, wiec brakuje Ci %d", get_user_time( id ), 1000 - get_user_time( id ) ) }
Działanie pluginu.
Uff, to chyba na tyle.
P.S Sam nigdy nie używałem get_user_time więc możliwe, że się gdzieś pomyliłem.
Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !
Napisano 28.09.2014 18:29
Tylko chodzi mi bardziej o to że:
jak będziesz miał przegrane 20 H i zdobędziesz 100 fragów dostajesz np:5 HP co rundę
Ale wielki plus za dobre intencje i wyjaśnienie
Użytkownik Frezzi edytował ten post 28.09.2014 18:30
Napisano 28.09.2014 18:33
If you can dream it, you can do it.
Napisano 28.09.2014 18:38
Napisze kod i dam go bo nie wiem czy jest dobrze
Ps:wklej go za chwile
Bez hejtów że np: najgorszy kod jaki widziałem
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <hamsandwich> #include <fun> #define PLUGIN "Info" #define VERSION "1.0" #define AUTHOR "Frezzi" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /wymagania", "ShowMotd"); } public ShowMotd(id){ show_motd(id, "info.txt", "Info"); } if get_user_time(index, flag=1000) } if( get_user_frags( id ) < 100 ) } if ( get_user_health(id)+5< hp ) { fm_set_user_health(id, hp); if ( pev(id, pev_max_health) < float(hp) ) { set_pev(id, pev_max_health, float(hp)); }
Użytkownik Frezzi edytował ten post 28.09.2014 19:08
Napisano 28.09.2014 19:27
Nie mogłem edytować sry
- @speedkill jak dodać tą baze nvault?
Napisano 28.09.2014 22:18
Świetny poradnik, http://amxx.pl/topic...roche-o-nvault/
CoD Mod - IP: 91.224.117.15:27235
JailBreak - IP: 91.224.117.67:27075
Only de_dust2 - IP: 193.33.176.197:27111
Więcej serwerów na: www.NaFarciePL
Napisano 28.09.2014 22:46
Napisano 29.09.2014 12:11
zrob sobie tablice na czas i fragi zapisuj ją i wczytuj z nvault odpowiednio przy disconnect i authorized po zabójstwie dodawaj do odpowiedniego elementu tablicy fraga a do drugiego czas przegrany na serverze (najlepiej zapisać do jakiejs zmiennej pomocniczej tez ten czas i potem dodawać róznice) no i na początku rundy sprawdzasz czy w gosc ma X fragów i Y przegranego czasu i dajesz hp (mozesz to robić tez w spawnie)
Napisano 29.09.2014 13:49
Poprawiłem lekko kod lecz nie wiem jak dodać nvault /////////////////////Poradnik nic nie dał
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <hamsandwich> #include <fun> #include <nvault> #define PLUGIN "Dodatki" #define VERSION "1.0" #define AUTHOR "Frezzi" new stats_vault /// Co to daje? Bo średnio wiem z tego poradnika :/ public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) stats_vault=nvault_open("Dodatki") /// To jest ścieżka jakaś? register_clcmd("say /wymagania", "ShowMotd"); } public ShowMotd(id){ show_motd(id, "wymagania.txt", "Info"); } if get_user_time(index, flag=1000) } if( get_user_frags( id ) < 100 ) } ( get_user_health(id)+5< hp ) }
Użytkownik Frezzi edytował ten post 29.09.2014 13:51
Napisano 29.09.2014 13:57
przeciez ty nie umiesz programować
Napisano 29.09.2014 14:04
No wiesz jak nie znasz znaczenia słowa lekko to pozdro
Napisano 29.09.2014 14:09
No wiesz jak nie znasz znaczenia słowa lekko to pozdro
Raz, zacznij od czytania tutoriali i uczenia się, programowanie to nie tylko dokumentacja i dodawanie komuś życia.
Dwa, jeżeli chcesz, by ktoś za Ciebie "odwalił robotę" napisz temat w innym dziale lub zleceniach płatnych. Dostałeś bardzo dużo wskazówek, a nadal nie wiesz, co masz z nimi zrobić.
"Ż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.
Napisano 29.09.2014 14:18
Wiesz większość osób uczy się na sklejaniu kodów i moim zdaniem jest to łatwy sposób nauki i czerpania wiedzy od bardziej zaawansowany Takim sposobem trochę chociaż umiem , a nie że przeczytam książkę o programowaniu i nawet co z tego że będę umiał funkcje jak nawet nie będę umiał zrobić poprawnie kodu , a z książki to początkujący nawet nic nie zrozumie , a po za tym ten dział jest do pomocy i do uczenia się a nie do wytykania palcami.
Użytkownik Frezzi edytował ten post 29.09.2014 14:19
Napisano 29.09.2014 20:36
trochę chociaż umiem
ty nic nie umiesz
co to jest?
public ShowMotd(id){ show_motd(id, "wymagania.txt", "Info"); } if get_user_time(index, flag=1000) } if( get_user_frags( id ) < 100 ) } ( get_user_health(id)+5< hp ) } najpierw zaczynasz funkcje i wyswietlasz w niej motd, po co ? potem robisz jakiegoś pseudo ifa bez nawiasów i zamykasz klamre której nigdzie nie otworzyłeś niżej jest już lepiej ale wciąż źle bo dalej masz klamre widmo no i na końcu masz warunek ale bez if'a więc jesli sklejanie kodów jest dobrą metodą nauki to nie jest metodą dla Ciebie bo poprostu nie działa // raczej malo prawdopodobne zebys kiedys z get_user_frags dostal liczbę wiekszą od 100 chyba że DeathMatcha prowadzisz
Napisano 30.09.2014 09:33
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ę.
0 użytkowników, 0 gości, 0 anonimowych