Skocz do zawartości

[KOSZ] czy dobrze


Rekomendowane odpowiedzi

Opublikowano (edytowane)

Cześć. Czy dobrze zroibłem plugin ? plugin ma liczyć fragi gracza. Funkcja get_user_frags chyba działa tak samo ale ja zrobiłem nie używając tego. Mało tego zrobiłem jeszcze funkcje która liczy fragi całego serwera i zapisuje do zmiennej. Czy dobrze zrobiony plugin ?

 


 

#include <amxmodx>
#include <amxmisc>


#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Daniel"


new zabicia_graczy[32];
new kills=0;
new sync;
new zabicia=0;


public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg", "DeathMsg", "a")
sync = CreateHudSyncObj()
}
public DeathMsg()
{
new kid = read_data(1)
zabicia_graczy[kid] = kills++;
}
public client_disconnect(id)
{
zabicia_graczy[id] = 0;
}
public cos(id)
{
{
set_hudmessage(255,255,255,0.5,0.5)
ShowSyncHudMsg(0, sync, "Ilosc Twoich zabojstw : %s", zabicia_graczy[id])
}
}
public plugin_cfg()
{
for(new i;i<32;i++)
{
zabicia = zabicia + zabicia_graczy[i];
}
}
 

PS: Niewiem czy ShowSyncHudMessage jest dobrze zrobione więc jeśli źle to poprawcie :D

Edytowane przez PaiN kiLLer .!
  • Właściciel
Opublikowano

#include <amxmodx>

#include <amxmisc>

#define PLUGIN "New Plug-In"

#define VERSION "1.0"

#define AUTHOR "Daniel"

new zabicia_gracza[33]=0;

new kills=0;

new sync;

new maxplayers

public plugin_init()

{

register_plugin(PLUGIN, VERSION, AUTHOR)

register_event("DeathMsg", "DeathMsg", "a")

sync = CreateHudSyncObj()

set_task(1.0, "cos")

}

public plugin_cfg(){

maxplayers = get_maxplayers();

}

public client_disconnect(id){

zabicia_gracza[id] = 0;

}

public DeathMsg(){

new kid = read_data(1)

zabicia_gracza[kid] += kills;

}

public cos(){

for(new i=1; i<maxplayers; i++){

set_hudmessage(255,255,255,0.5,0.5)

ShowSyncHudMsg(i, sync, "Ilosc Twoich zabojstw: %s", zabicia_gracza[i])

}

}

  • Właściciel
Opublikowano

Bo 32 graczy. Skasować możesz =0, bo ta zmienna globalna i tak przyjmie wartość 0.

 

Zamiast tego, możesz dać:

 

#define MAX 32 // ilosc slotow

 

i potem zmienne globalne z tablicą:

 

new zabicia_gracza[MAX+1]=0;

Opublikowano (edytowane)

No właśńie i tego nie rozumiem. Skoro jest maximum 32 graczy to dlaczego 33 elementy ?

Edytowane przez PaiN kiLLer .!
Opublikowano

Czy jeśli w moim kodzie byłoby zamiast [32] to [33] to czy mój kod by był poprawny ? zakładając że show sync hud messgae zawsze się pokarze ?

  • Właściciel
Opublikowano

Byłby poprawny. Jak dasz 32, tylko 32 to 31 graczy. Jeśli 33, to będzie 32 czyli max. Dlatego najlepiej jest zrobić definicję pre-procesora, gdzie podamy liczbę slotów dostępnych, a w zmiennej ta liczba +1 i to wszystko. Zaoszczędzisz dzięki temu pamięć, bo po co robić zmienną globalną tylu elementową, jeśli masz tylko 20 slotów. No to tylko 20 indexów będzie przykładowo, a Ty możesz mieć tam powiedźmy 26. No to o 6 za dużo i niepotrzebnie Ci pamięć zjada.

Opublikowano

a jeszcze jedno. Bo prówowałem troche z nvault ale nie rozumiem tego. Próbowałem skorzystać z dokumentacji ale sam kod bez rozumienie nic nie daje. Na amxx czytałem temat Trochę o nvault i musze powiedzieć że poradnik jest bez sensu. Nic z niego nie rozumiem . Może masz jakis link o nvault. Lub czy jest jakaś inna biblioteka która działa podobnie do nvault :D

  • 1 rok później...
  • 2 lata później...
  • Właściciel
Opublikowano

Wiadomość została wygenerowana automatycznie.

 

Ten temat został oznaczony przez Moderatora jako spam i wyrzucony do -> archiwum.

Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Polityka prywatności