Bawię się trochę w pisane pluginów ale nie mogę zrozumieć czemu raz w jakimś kodzie jest stock i do czego on służy i czy się różni taka funkcja (o ile to funkcja ) od public
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.
|
Guest Message by DevFuse
Pomoc w zrozumieniu kodu ^^'
Temat rozp. sokojoko, 16.08.2010 10:26
3 odpowiedzi w tym temacie
#1
Napisano 16.08.2010 10:26
#2
Napisano 16.08.2010 10:48
Stock jest to funkcja która nie wywali ci błędu kiedy nie użyjesz jej . Stocki są zazwyczaj gotowymi funkcjami w jakiejś bibliotece przez co po zaincludowaniu danej biblioteki i nie użyciu niektórych funkcji z niej nie wywali ci błędu.
Funkcje Publiczne (public) są wykorzystywane w każdym pluginie, masz do nich dostęp z każdej części swojego kodu. Jeśli natomiast masz funkcję pub;liczną i nie użyjesz jej, kompilator wywali linijkę z informacją iż nie użyłeś danej funkcji.
Coś mniej/więcej w tym stylu
Chociaż nie jestem do końca pewien ;/
Funkcje Publiczne (public) są wykorzystywane w każdym pluginie, masz do nich dostęp z każdej części swojego kodu. Jeśli natomiast masz funkcję pub;liczną i nie użyjesz jej, kompilator wywali linijkę z informacją iż nie użyłeś danej funkcji.
Coś mniej/więcej w tym stylu
Chociaż nie jestem do końca pewien ;/
#3
Napisano 16.08.2010 11:10
hmm nie wiele mi to wyjaśniło mówiąc szczerze
to może dam część kodu i mi powiesz czy dobrze
to może dam część kodu i mi powiesz czy dobrze
register_clcmd("say /respawn", "Respawn");
register_clcmd("say /spawn", "Respawn");
register_clcmd("say /resp", "Respawn");
register_clcmd("say /res", "Respawn");
.
.
.
public Death()
{
new id = read_data(2);
new attacker = read_data(1);
if(!is_user_alive(attacker) || !is_user_connected(attacker))
return PLUGIN_CONTINUE;
new weapon = get_user_weapon(attacker);
new zdrowie = get_user_health(attacker);
if(get_user_team(id) != get_user_team(attacker) && klasa_gracza[attacker])
{
new nowe_doswiadczenie = 0;
nowe_doswiadczenie += doswiadczenia_za_zabojstwo;
if(klasa_gracza[id] == Rambo && klasa_gracza[attacker] != Rambo)
nowe_doswiadczenie += doswiadczenia_za_zabojstwo*2;
if(poziom_gracza[id] > poziom_gracza[attacker])
nowe_doswiadczenie += poziom_gracza[id] - poziom_gracza[attacker];
if(klasa_gracza[attacker] == Rambo || informacje_przedmiotu_gracza[attacker][0] == 15 && maxClip[weapon] != -1)
{
new nowe_zdrowie = (zdrowie+20<maksymalne_zdrowie_gracza[attacker])? zdrowie+20: maksymalne_zdrowie_gracza[attacker];
set_user_clip(attacker, maxClip[weapon]);
set_user_health(attacker, nowe_zdrowie);
}
#if defined BOTY
if(is_user_bot2(attacker) && random(9) == 0)
WyrzucPrzedmiot(id);
#endif
if(!informacje_przedmiotu_gracza[attacker][0])
DajPrzedmiot(attacker, random_num(1, sizeof nazwy_przedmiotow-1));
if(informacje_przedmiotu_gracza[attacker][0] == 14)
{
new nowe_zdrowie = (zdrowie+50<maksymalne_zdrowie_gracza[attacker])? zdrowie+50: maksymalne_zdrowie_gracza[attacker];
set_user_health(attacker, nowe_zdrowie);
}
set_hudmessage(255, 212, 0, 0.50, 0.33, 1, 6.0, 4.0);
ShowSyncHudMsg(attacker, SyncHudObj2, "+%i", nowe_doswiadczenie);
doswiadczenie_gracza[attacker] += nowe_doswiadczenie;
}
SprawdzPoziom(attacker);
if(informacje_przedmiotu_gracza[id][0] == 7 && random_num(1, informacje_przedmiotu_gracza[id][1]) == 1)
set_task(0.1, "Wskrzes", id+ZADANIE_WSKRZES);
Respawn(id)
return PLUGIN_CONTINUE;
}
.
.
.
stock Respawn(id)
{
if(!is_user_alive(id) && autorespawn == 1)
{
czas_do_respawnu = random_float(get_cvar_float("cod_autorespawn_min"), get_cvar_float("cod_autorespawn_max"));
set_task(czas_do_respawnu, "Wskrzes", id+ZADANIE_WSKRZES);
client_print(id, print_center, "Odrodzisz sie za %f sekundy GL&HF", czas_do_respawnu);
}
}
.
.
.
public Wskrzes(id)
{
id-=ZADANIE_WSKRZES;
ExecuteHamB(Ham_CS_RoundRespawn, id);
}
Użytkownik sokojoko edytował ten post 16.08.2010 11:11
#4
Napisano 16.08.2010 14:01
można podzielić własne funkcje na 2 grupy: publiczne i wewnętrzne
funkcje publiczne dostępne są w jak i poza pluginem, mogę je wywoływać zdarzenia (forwardy), my sami lub inny plugin AMXX, nieużyte nie powodują ostrzeżenia przy kompilacji
funkcje wewnętrzne to te, których używa wyłącznie nasz plugin, tzn funkcje pomocnicze; nie mogą one reagować na zdarzenia, bo nie są w zasięgu zewnętrznych źródeł jak inne pluginy czy moduły; nieużyte powodują ostrzeżenie przy kompilacji
funkcje typu stock to rodzaj funkcji wewnętrznych, które nie są kompilowane jeśli nie zostają użyte - co za tym idzie nieużyte nie powodują otrzeżeń
funkcje publiczne dostępne są w jak i poza pluginem, mogę je wywoływać zdarzenia (forwardy), my sami lub inny plugin AMXX, nieużyte nie powodują ostrzeżenia przy kompilacji
public funkcja(parametry)
funkcje wewnętrzne to te, których używa wyłącznie nasz plugin, tzn funkcje pomocnicze; nie mogą one reagować na zdarzenia, bo nie są w zasięgu zewnętrznych źródeł jak inne pluginy czy moduły; nieużyte powodują ostrzeżenie przy kompilacji
funkcja(parametry)
funkcje typu stock to rodzaj funkcji wewnętrznych, które nie są kompilowane jeśli nie zostają użyte - co za tym idzie nieużyte nie powodują otrzeżeń
stock funkcja(parametry)
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych