Skocz do zawartości
PaiN kiLLer .!

[KOSZ] czy dobrze

Rekomendowane odpowiedzi

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 .!

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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

}

}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach


new zabicia_gracza[33]=0;

 

dlaczego 33 elementy i dlaczego 0 ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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;

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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

Edytowane przez PaiN kiLLer .!

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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 ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Najpierw podstawy, potem nvault.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

Ten temat został przeniesiony z forum

HLDS & SRCDSAMX MOD XProblemy i pytania

do

HLDS & SRCDSScripting Problemy i pytania

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
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