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