Skocz do zawartości

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Pomoc w zrozumieniu kodu ^^'


  • Zamknięty Temat jest zamknięty
3 odpowiedzi w tym temacie

#1 sokojoko

    Pomocny

  • Użytkownik

Reputacja: 6
Nowy

  • Postów:47
  • Lokalizacja:warszawa
Offline

Napisano 16.08.2010 10:26

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 :wstyd: ) od public
  • +
  • -
  • 0

#2 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 588
Wszechwiedzący

  • Postów:2 013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

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 :P
Chociaż nie jestem do końca pewien ;/
  • +
  • -
  • 0

#3 sokojoko

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 6
Nowy

  • Postów:47
  • Lokalizacja:warszawa
Offline

Napisano 16.08.2010 11:10

hmm nie wiele mi to wyjaśniło mówiąc szczerze :P
to może dam część kodu i mi powiesz czy dobrze :D

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

  • +
  • -
  • 0

#4 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

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
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)

  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych