O co chodzi z new cos [33]
Savander
19.09.2010
Witam mam pytanie dotyczące np tego:
o co chodzi z tymi liczbami w [] ?? Mógł by mi ktoś wytłumaczyć?
new msg[128]
o co chodzi z tymi liczbami w [] ?? Mógł by mi ktoś wytłumaczyć?
Knopers
19.09.2010
Jest to wielkość tablicy, a dokładniej liczba komórek .
W jednej komórce np mieści się jeden znak char np: a .
W jednej komórce np mieści się jeden znak char np: a .
R3X
19.09.2010
Tablice to zbiór zmiennych.
można połączyć w tablicę
przez co do wielu danych mamy dostęp z jednej zmiennej, co łatwiej wykorzystać przy tworzeniu algorytmu; zamiast szukać odpowiedniej nazwy zmiennej wystarczy policzyć indeks w tablicy
new a1 = 1; new a2 = 5;
można połączyć w tablicę
new a[2]; a[0] = 1; a[1] = 5;
przez co do wielu danych mamy dostęp z jednej zmiennej, co łatwiej wykorzystać przy tworzeniu algorytmu; zamiast szukać odpowiedniej nazwy zmiennej wystarczy policzyć indeks w tablicy
hardbot 19.09.2010
Podałem ci przykład
i do tego możesz zrobić
Czyli wnioskować z tego, cos[33] = zmienna pod ID
którya wykrywa u gracza jeśli gracz wziął sobie to HP to dopiero z tego kodu wynika co napiasałem że będzie mógł dopiero wziąć za 4 rundy to HP
i do tego możesz zrobić
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
new cos[33];
new rundy;
public plugin_init()
{
register_plugin("Test", "1", "[H]ARDBO[T]")
register_logevent("Restart", 2, "1=Restart_Round_(1_second)");
register_event("HLTV", "NowaRunda", "a", "1=0", "2=0");
register_clcmd("say /test", "Testowa")
}
public Restart()
{
rundy = 0;
}
public NowaRunda(id)
{
rundy++;
if(rundy == 4)
{
cos[id] = false;
}
}
public Testowa(id)
{
if(cos[id])
{
cos[id] = true;
pev(id, pev_health,200)
client_print(id, print_chat,"Super, dostales 200HP!")
}
else
{
client_print(id, print_chat,"heh, Mozesz tego uzyc raz na 4 rundy.")
}
return PLUGIN_CONTINUE
}
Czyli wnioskować z tego, cos[33] = zmienna pod ID
którya wykrywa u gracza jeśli gracz wziął sobie to HP to dopiero z tego kodu wynika co napiasałem że będzie mógł dopiero wziąć za 4 rundy to HP
Savander
19.09.2010
Czyli zamiast pisać wiele razy jakiś algortym np
a[0]
a[1] i tak dalej, to mogę to napisac new a[2]??
Aha, i co odpowiada za ilość rund? Wiem jestem nowy w tym dlatego się pytam
a[0]
a[1] i tak dalej, to mogę to napisac new a[2]??
Aha, i co odpowiada za ilość rund? Wiem jestem nowy w tym dlatego się pytam
Seba 19.09.2010
Nie.a[0]
a[1] i tak dalej, to mogę to napisac new a[2]??
Przykro mi, ale już widać że programistą nie zostaniesz. Nie każdy się do tego nadajeAha, i co odpowiada za ilość rund? Wiem jestem nowy w tym dlatego się pytam
Seba 19.09.2010
Od przeczytania tutoriali w internecie oraz próbę zinterpretowania prostych kodów. Nie od głupich pytań na forum.Każdy od czegoś zaczynał ;/
G[o]Q
19.09.2010
if(cos[id]) { cos[id] = true; pev(id, pev_health,200) client_print(id, print_chat,"Super, dostales 200HP!") }
bezwzglednie ten kod zadziala tak jak tego chciales hardbot
Screeaam... 19.09.2010
Aha, i co odpowiada za ilość rund? Wiem jestem nowy w tym dlatego się pytam
public NowaRunda(id) // Ten event trzeba zarejestrować w plugin_init, włącza się gdy następuje nowa runda (Po freeze chyba)
{
rundy++; // Dodaj jeden do zmiennej "rundy", na początku jest rundy = 0, czyli jak doda to będzie 1.
}
Więc jeżeli cztery razy nowa runda będzie to zmienna "rundy" będzie miała wartość 4 (runda == 4)
G[o]Q
19.09.2010
#include <amxmodx> #include <amxmisc> #include <fakemeta> new cos[33]; new rundy; public plugin_init() { register_plugin("Test", "1", "[H]ARDBO[T]") register_logevent("Restart", 2, "1=Restart_Round_(1_second)"); register_event("HLTV", "NowaRunda", "a", "1=0", "2=0"); register_clcmd("say /test", "Testowa") } public Restart() { rundy = 0; } public NowaRunda(id) { rundy++; if(rundy == 4) { cos[id] = false; } } public Testowa(id) { if(cos[id]) { cos[id] = true; pev(id, pev_health,200) client_print(id, print_chat,"Super, dostales 200HP!") } else { client_print(id, print_chat,"heh, Mozesz tego uzyc raz na 4 rundy.") } return PLUGIN_CONTINUE }
wiec tak ustawiasz zmienna na false ale sprawdzasz czy ma ona wartosc true ktorej nigdzie nie ustawiasz bo warunek sie nie wykona dodatkowo juz w warunku przypisujesz tam true czyli "jesli wartosc to prawda to nie zmieniaj jej" powinien tam byc wykrzyknik w if'ie
pozatym twoj kod przypisze do zmiennej cos[id] false tylko jesli bedzie to 4 runda potem juz nie powinno byc gdzies resetowanie zmiennej albo sprawdzanie reszty z dzielenia
i do tego twoj event nie ma parametru id a ty go dales czyli ma wartosc 0
dodatkowo przy inicjalizacji kazdy element tablicy ma wartosc false wiec plugin nic nie zrobi tak naprawdę
mgr inż. Pavulon
19.09.2010
if(cos[id]) { cos[id] = true;Gdzie logika ?
Jeżeli prawda ustaw prawda
hardbot 19.09.2010
to czyli
public Testowa(id)
{
cos[id] = true;
if(cos[id])
{
set_pev(id, pev_health,200.0)
client_print(id, print_chat,"Super, dostales 200HP!")
}
else
{
client_print(id, print_chat,"heh, Mozesz tego uzyc raz na 4 rundy.")
}
return PLUGIN_CONTINUE
}
Vertricus
19.09.2010
O ile dobrze myślę to:
znaczy tyle co to:
public Testowa(id)
{
cos[id] = true;
if(cos[id])
{
set_pev(id, pev_health,200.0)
client_print(id, print_chat,"Super, dostales 200HP!")
}
else
{
client_print(id, print_chat,"heh, Mozesz tego uzyc raz na 4 rundy.")
}
return PLUGIN_CONTINUE
}
znaczy tyle co to:
public Testowa(id)
{
set_pev(id, pev_health,200.0)
client_print(id, print_chat,"Super, dostales 200HP!")
return PLUGIN_CONTINUE
}
Change
19.09.2010
cos[id] = true;
if(cos[id])
wtf-.-
Użytkownik Change edytował ten post 19.09.2010 18:58
kyku
19.09.2010
ej nupki nupki..
Dodano 19 wrzesień 2010 - 20:41:
z reszta i tak nie bedzie dobrze dzialalo bo resetuje wszystkim w 4 rundzie niezaleznie od tego czy uzyli czy nie (i kiedy)
Dodano 19 wrzesień 2010 - 20:44:
Użytkownik kyku edytował ten post 19.09.2010 19:39
#include <amxmodx> #include <fakemeta> new bool:cos[33]; new rundy; public plugin_init() { register_plugin("Test", "1337", "[H]ARDBO[T] nuub") register_logevent("Restart", 2, "1=Restart_Round_(1_second)"); register_event("HLTV", "NowaRunda", "a", "1=0", "2=0"); register_clcmd("say /test", "Testowa") } public Restart()rundy = 0; public NowaRunda()if(++rundy == 4)for(new i;i<33;i++)cos[i]=false; public Testowa(id) { if(!cos[id]) { cos[id] = true; set_pev(id, pev_health,200.0) client_print(id, print_chat,"Super, dostales 200HP!") } else client_print(id, print_chat,"heh, Mozesz tego uzyc raz na 4 rundy.") return PLUGIN_CONTINUE }
Dodano 19 wrzesień 2010 - 20:41:
z reszta i tak nie bedzie dobrze dzialalo bo resetuje wszystkim w 4 rundzie niezaleznie od tego czy uzyli czy nie (i kiedy)
Dodano 19 wrzesień 2010 - 20:44:
#include <amxmodx> #include <fakemeta> new cos[33]; public plugin_init() { register_plugin("Test", "1337", "[H]ARDNOO[B]") register_logevent("Restart", 2, "1=Restart_Round_(1_second)"); register_event("HLTV", "NowaRunda", "a", "1=0", "2=0"); register_clcmd("say /test", "Testowa") } public Restart()for(new i;i<33;i++)if(cos[i])cos[i]=0; public NowaRunda()for(new i;i<33;i++)if(cos[i])cos[i]--; public Testowa(id) { if(!cos[id]) { cos[id] = 4; set_pev(id, pev_health,200.0) client_print(id, print_chat,"Super, dostales 200HP! Nastepny raz mozesz uzyc za 4 rundy!") } else client_print(id, print_chat,"Komende bedziesz mogl uzyc za %d rund", cos[id]) return PLUGIN_CONTINUE }ale to juz powinno dzialac dobrze
Użytkownik kyku edytował ten post 19.09.2010 19:39