Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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
CoD Nowy

Inne dodawanie punktów

cod nowy

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
63 odpowiedzi w tym temacie

#1 byCZUS

    Listonosz

  • Support Team

Reputacja: 743
Guru

  • Postów:459
  • GG:
  • Steam:steam
  • Lokalizacja:GW
Offline

Napisano 30.07.2011 11:51

*
Popularny

Witam,
dzisiaj przedstawię troszkę inny sposób dodawanie punktów statystyk niż w innych tutkach ;], wygląda to mniej więcej tak:

ncje45.jpg

Dokładniej chodzi o opcję numer: 1. Po jej kliknięciu liczba dodawanych punktów się zwiększa (można to dowolnie edytować).

A więc do dzieła, na samym początku musimy dodać jedną stałą z naszymi punktami i zmienną która będzie przechowywała informacje o tym co ile ma dodawać na pkt.
Pod:
 

new const maxAmmo[31] = {0, 52, 0, 90, 1, 31, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120, 30, 120, 200, 31, 90, 120,
90, 2, 35, 90, 90,0, 100};

dodajemy coś takiego:
 

new const co_ile[] = { 1, 4, 8, 16, 24 } // Wlasnie tutaj zmieniamy co ile maja rosnac punkty.
new szybkosc_rozdania[33];

Następnym krokiem będzie edycja widoku statystyk i handler'a od tego. Szukamy

public PrzydzielPunkty(id)
{
new inteligencja[65];
new zdrowie[60];
new wytrzymalosc[60];
new kondycja[60];
new tytul[25];
format(inteligencja, charsmax(inteligencja), "Inteligencja: \r%i \y(Zwieksza sile perkow i umiejetnosci klasy)", PobierzInteligencje(id, 1, 1, 1));
format(zdrowie, charsmax(zdrowie), "Zdrowie: \r%i \y(Zwieksza zdrowie)", PobierzZdrowie(id, 1, 1, 1));
format(wytrzymalosc, charsmax(wytrzymalosc), "Wytrzymalosc: \r%i \y(Zmniejsza obrazenia)", PobierzWytrzymalosc(id, 1, 1, 1));
format(kondycja, charsmax(kondycja), "Kondycja: \r%i \y(Zwieksza tempo chodu)", PobierzKondycje(id, 1, 1, 1));
format(tytul, charsmax(tytul), "Przydziel Punkty(%i):", punkty_gracza[id]);
new menu = menu_create(tytul, "PrzydzielPunkty_Handler");
menu_additem(menu, inteligencja);
menu_additem(menu, zdrowie);
menu_additem(menu, wytrzymalosc);
menu_additem(menu, kondycja);
menu_setprop(menu, MPROP_EXIT, 0);
menu_display(id, menu);
}
i zamieniamy na

public PrzydzielPunkty(id)
{
new szybkosc[60];
new inteligencja[65];
new zdrowie[60];
new wytrzymalosc[60];
new kondycja[60];
new tytul[25];

format(szybkosc, charsmax(szybkosc), "Ile dodawac: \r%d \y(Ile pkt dodac do statow)", co_ile[szybkosc_rozdania[id]]);
format(inteligencja, charsmax(inteligencja), "Inteligencja: \r%i \y(Zwieksza sile perkow i umiejetnosci klasy)", PobierzInteligencje(id, 1, 1, 1));
format(zdrowie, charsmax(zdrowie), "Zdrowie: \r%i \y(Zwieksza zdrowie)", PobierzZdrowie(id, 1, 1, 1));
format(wytrzymalosc, charsmax(wytrzymalosc), "Wytrzymalosc: \r%i \y(Zmniejsza obrazenia)", PobierzWytrzymalosc(id, 1, 1, 1));
format(kondycja, charsmax(kondycja), "Kondycja: \r%i \y(Zwieksza tempo chodu)", PobierzKondycje(id, 1, 1, 1));
format(tytul, charsmax(tytul), "Przydziel Punkty(%i):", punkty_gracza[id]);
new menu = menu_create(tytul, "PrzydzielPunkty_Handler");
menu_additem(menu, szybkosc);
menu_addblank(menu, 0);
menu_additem(menu, inteligencja);
menu_additem(menu, zdrowie);
menu_additem(menu, wytrzymalosc);
menu_additem(menu, kondycja);
menu_setprop(menu, MPROP_EXIT, 0);
menu_display(id, menu);
}
Wygląd naszego menu z punktami został już zmieniony teraz, handler, znajduje się on nieco niżej, dokładnie chodzi o to:

public PrzydzielPunkty_Handler(id, menu, item)
{
client_cmd(id, "spk QTM_CodMod/select");

if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}

if(punkty_gracza[id] < 1)
return PLUGIN_CONTINUE;

new limit_poziomu = get_pcvar_num(cvar_limit_poziomu);

switch(item)
{
case 0:
{
if(inteligencja_gracza[id] < limit_poziomu/2)
{
inteligencja_gracza[id]++;
punkty_gracza[id]--;
}
else
client_print(id, print_chat, "[COD:MW] Maxymalny poziom inteligencji osiagniety");


}
case 1:
{
if(zdrowie_gracza[id] < limit_poziomu/2)
{
zdrowie_gracza[id]++;
punkty_gracza[id]--;
}
else
client_print(id, print_chat, "[COD:MW] Maxymalny poziom sily osiagniety");
}
case 2:
{
if(wytrzymalosc_gracza[id] < limit_poziomu/2)
{
wytrzymalosc_gracza[id]++;
punkty_gracza[id]--;
}
else
client_print(id, print_chat, "[COD:MW] Maxymalny poziom zrecznosci osiagniety");

}
case 3:
{
if(kondycja_gracza[id] < limit_poziomu/2)
{
kondycja_gracza[id]++;
punkty_gracza[id]--;
}
else
client_print(id, print_chat, "[COD:MW] Maxymalny poziom kondycji osiagniety");
}
}

if(punkty_gracza[id] > 0)
PrzydzielPunkty(id);

return PLUGIN_CONTINUE;
}
zamieniamy na

public PrzydzielPunkty_Handler(id, menu, item) {
client_cmd(id, "spk QTM_CodMod/select");

if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_CONTINUE;
}

if(punkty_gracza[id] < 1)
return PLUGIN_CONTINUE;

new limit_poziomu = get_pcvar_num(cvar_limit_poziomu);
new ilosc = (co_ile[szybkosc_rozdania[id]] > punkty_gracza[id]) ? punkty_gracza[id] : co_ile[szybkosc_rozdania[id]]

switch(item) {
case 0: {
if(szybkosc_rozdania[id] < charsmax(co_ile)) szybkosc_rozdania[id]++;
else szybkosc_rozdania[id] = 0;
}
case 1: {
if(inteligencja_gracza[id]+ilosc <= limit_poziomu/2) {
inteligencja_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom inteligencji osiagniety");
}
case 2: {
if(zdrowie_gracza[id]+ilosc <= limit_poziomu/2) {
zdrowie_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom sily osiagniety");
}
case 3: {
if(wytrzymalosc_gracza[id]+ilosc <= limit_poziomu/2) {
wytrzymalosc_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom zrecznosci osiagniety");
}
case 4: {
if(kondycja_gracza[id]+ilosc <= limit_poziomu/2) {
kondycja_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom kondycji osiagniety");
}
}

if(punkty_gracza[id] > 0)
PrzydzielPunkty(id);

return PLUGIN_CONTINUE;
}

No i to tyle, wystarczy teraz przekompilować kod i wgrać plugin. ;]
  • +
  • -
  • 74

Dziękuje, dobranoc.


#2 nICe hS

    Życzliwy

  • Użytkownik

Reputacja: 9
Nowy

  • Postów:34
  • GG:
  • Lokalizacja:Pisz
Offline

Napisano 30.07.2011 13:14

no dziala idealnie lapaj plusa
  • +
  • -
  • 0

#3 A może sma?

    Godlike

  • Power User

Reputacja: 539
Wszechwiedzący

  • Postów:1464
  • GG:
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 04.08.2011 16:38

Krótkie pytanie: jak do tego dodać "Dodaj wszystko w"? :]
  • +
  • -
  • 0

#4 czyzyk

    Zaawansowany

  • Zbanowany

Reputacja: 0
zer0.

  • Postów:93
  • Imię:Pieklo
  • Lokalizacja:Pieklo
Offline

Napisano 09.08.2011 11:42

nie ma w tym tego.
Musisz dodać funckje od goliatha

#5 Na 5tyk

    Godlike

  • Użytkownik

Reputacja: 430
Wszechobecny

  • Postów:1712
  • GG:
  • Imię:Patryk
  • Lokalizacja:PL
Offline

Napisano 09.08.2011 12:03

Oczywiście + się należy :) Dobra robota
  • +
  • -
  • 0

#6 Goliath

    Godlike

  • Przyjaciel

Reputacja: 1227
Godlike

  • Postów:2334
  • GG:
  • Steam:steam
  • Imię:Maciej
  • Lokalizacja:Mońki
Offline

Napisano 10.08.2011 10:49

*
Popularny

Cholera, miałem zrobione u siebie praktycznie to samo i zastanawiałem się, kiedy to wstawić. Jak widać, trochę zbyt długo się zastanawiałem xD.

Co do tematu: zauważyłem taką niedogodność - gdy ma się np. 85 punktów w danej statystyce, a limit wynosi 100, to przy próbie dodania w statystykę np. 16 punktów wyświetli się, że "maksymalny poziom statystyki osiągnięty". Oto kod, który powinien to naprawić:
public PrzydzielPunkty_Handler(id, menu, item) {
client_cmd(id, "spk QTM_CodMod/select");

if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_CONTINUE;
}

if(punkty_gracza[id] < 1)
return PLUGIN_CONTINUE;

new limit_poziomu = get_pcvar_num(cvar_limit_poziomu);
new ilosc = (co_ile[szybkosc_rozdania[id]] > punkty_gracza[id]) ? punkty_gracza[id] : co_ile[szybkosc_rozdania[id]]

switch(item) {
case 0: {
if(szybkosc_rozdania[id] < charsmax(co_ile)) szybkosc_rozdania[id]++;
else szybkosc_rozdania[id] = 0;
}
case 1: {
if(inteligencja_gracza[id] < limit_poziomu/2) {
if(ilosc > limit_poziomu/2 - inteligencja_gracza[id])
ilosc = limit_poziomu/2 - inteligencja_gracza[id];
inteligencja_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom inteligencji osiagniety");
}
case 2: {
if(zdrowie_gracza[id] < limit_poziomu/2) {
if(ilosc > limit_poziomu/2 - zdrowie_gracza[id])
ilosc = limit_poziomu/2 - zdrowie_gracza[id];
zdrowie_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom sily osiagniety");
}
case 3: {
if(wytrzymalosc_gracza[id] < limit_poziomu/2) {
if(ilosc > limit_poziomu/2 - wytrzymalosc_gracza[id])
ilosc = limit_poziomu/2 - wytrzymalosc_gracza[id];
wytrzymalosc_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom zrecznosci osiagniety");
}
case 4: {
if(kondycja_gracza[id] < limit_poziomu/2) {
if(ilosc > limit_poziomu/2 - kondycja_gracza[id])
ilosc = limit_poziomu/2 - kondycja_gracza[id];
kondycja_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom kondycji osiagniety");
}
}

if(punkty_gracza[id] > 0)
PrzydzielPunkty(id);

return PLUGIN_CONTINUE;
}

A dla tych, którzy chcą dodawanie wszystkiego w daną statystykę: zmieniamy:
new const co_ile[] = { 1, 4, 8, 16, 24 }

Na:
new const co_ile[] = { 1, 4, 8, 16, 24, -1 }

Zmieniamy funkcję PrzydzielPunkty na:
public PrzydzielPunkty(id)
{
new szybkosc[60];
new inteligencja[65];
new zdrowie[60];
new wytrzymalosc[60];
new kondycja[60];
new tytul[25];

if(co_ile[szybkosc_rozdania[id]] == -1)
format(szybkosc, charsmax(szybkosc), "Ile dodawac: \rwszystko \y(Ile pkt dodac do statow)");
else format(szybkosc, charsmax(szybkosc), "Ile dodawac: \r%d \y(Ile pkt dodac do statow)", co_ile[szybkosc_rozdania[id]]);
format(inteligencja, charsmax(inteligencja), "Inteligencja: \r%i \y(Zwieksza sile perkow i umiejetnosci klasy)", PobierzInteligencje(id, 1, 1, 1));
format(zdrowie, charsmax(zdrowie), "Zdrowie: \r%i \y(Zwieksza zdrowie)", PobierzZdrowie(id, 1, 1, 1));
format(wytrzymalosc, charsmax(wytrzymalosc), "Wytrzymalosc: \r%i \y(Zmniejsza obrazenia)", PobierzWytrzymalosc(id, 1, 1, 1));
format(kondycja, charsmax(kondycja), "Kondycja: \r%i \y(Zwieksza tempo chodu)", PobierzKondycje(id, 1, 1, 1));
format(tytul, charsmax(tytul), "Przydziel Punkty(%i):", punkty_gracza[id]);
new menu = menu_create(tytul, "PrzydzielPunkty_Handler");
menu_additem(menu, szybkosc);
menu_addblank(menu, 0);
menu_additem(menu, inteligencja);
menu_additem(menu, zdrowie);
menu_additem(menu, wytrzymalosc);
menu_additem(menu, kondycja);
menu_setprop(menu, MPROP_EXIT, 0);
menu_display(id, menu);
}

A funkcję PrzydzielPunkty_Handler na:
public PrzydzielPunkty_Handler(id, menu, item) {
client_cmd(id, "spk QTM_CodMod/select");

if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_CONTINUE;
}

if(punkty_gracza[id] < 1)
return PLUGIN_CONTINUE;

new limit_poziomu = get_pcvar_num(cvar_limit_poziomu);
new ilosc;
if(co_ile[szybkosc_rozdania[id]] == -1)
ilosc = punkty_gracza[id];
else ilosc = (co_ile[szybkosc_rozdania[id]] > punkty_gracza[id]) ? punkty_gracza[id] : co_ile[szybkosc_rozdania[id]]

switch(item) {
case 0: {
if(szybkosc_rozdania[id] < charsmax(co_ile)) szybkosc_rozdania[id]++;
else szybkosc_rozdania[id] = 0;
}
case 1: {
if(inteligencja_gracza[id] < limit_poziomu/2) {
if(ilosc > limit_poziomu/2 - inteligencja_gracza[id])
ilosc = limit_poziomu/2 - inteligencja_gracza[id];
inteligencja_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom inteligencji osiagniety");
}
case 2: {
if(zdrowie_gracza[id] < limit_poziomu/2) {
if(ilosc > limit_poziomu/2 - zdrowie_gracza[id])
ilosc = limit_poziomu/2 - zdrowie_gracza[id];
zdrowie_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom sily osiagniety");
}
case 3: {
if(wytrzymalosc_gracza[id] < limit_poziomu/2) {
if(ilosc > limit_poziomu/2 - wytrzymalosc_gracza[id])
ilosc = limit_poziomu/2 - wytrzymalosc_gracza[id];
wytrzymalosc_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom zrecznosci osiagniety");
}
case 4: {
if(kondycja_gracza[id] < limit_poziomu/2) {
if(ilosc > limit_poziomu/2 - kondycja_gracza[id])
ilosc = limit_poziomu/2 - kondycja_gracza[id];
kondycja_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom kondycji osiagniety");
}
}

if(punkty_gracza[id] > 0)
PrzydzielPunkty(id);

return PLUGIN_CONTINUE;
}

Powyższych kodów nie testowałem, ale myślę, że będą działać.
  • +
  • -
  • 21

#7 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6033
Godlike

  • Postów:10826
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 10.08.2011 11:39

bardzo ładne na pewno dodam to do swojego coda :)
  • +
  • -
  • 0

#8 Gość_Sangre_*

  • Gość

Reputacja: 0

Offline

Napisano 04.09.2011 18:28

przy kompilacji pokazuje sie tylko

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team

i czemu nie kompiluje a robię tak jak jest napisane?!

Użytkownik Sangre edytował ten post 04.09.2011 18:29


#9 byCZUS

    Listonosz

  • Autor tematu
  • Support Team

Reputacja: 743
Guru

  • Postów:459
  • GG:
  • Steam:steam
  • Lokalizacja:GW
Offline

Napisano 04.09.2011 21:25

A dobrze masz skonfigurowany compiler ?

Gdyby wystąpił błąd to by się wyświetlił, jeżeli nie możesz skompilować daj mi na PW sma lub tutaj (PW <- nie zostanie upubliczniony) ;P To Ci skompiluję.
  • +
  • -
  • 0

Dziękuje, dobranoc.


#10 Gość_Sangre_*

  • Gość

Reputacja: 0

Offline

Napisano 20.11.2011 00:17

skompiluje mi to ktoś?
jakoś nie działa
ps: już wiem chyba co nie tak.

ma dodaną tabelkę EXP
w załączniku moje sms
moze ktoś zerknąć?

Załączone pliki


Użytkownik Sangre edytował ten post 20.11.2011 01:04


#11 byCZUS

    Listonosz

  • Autor tematu
  • Support Team

Reputacja: 743
Guru

  • Postów:459
  • GG:
  • Steam:steam
  • Lokalizacja:GW
Offline

Napisano 20.11.2011 12:33

3maj, chociaż masz trochę pozmieniane ^^

@Down Poprawiłem błąd który występował.

Załączone pliki


Użytkownik byCZUS edytował ten post 20.11.2011 13:34

  • +
  • -
  • 3

Dziękuje, dobranoc.


#12 Gość_Sangre_*

  • Gość

Reputacja: 0

Offline

Napisano 20.11.2011 12:52

ale z mojego sma nic nie wywaliłeś tylko przerobiłeś ten Twój dodatek?
tak to mam rozumieć?

#13 _nothing_

    NO ACTA !

  • Zbanowany

Reputacja: 134
Zaawansowany

  • Postów:377
  • GG:
  • Imię:Nothing
  • Lokalizacja:Poland
Offline

Napisano 20.11.2011 15:38

byczusz przydatna rzecz :) Ułatwi to rozdawanie statystyk :) + za pomysł

#14 robaloss

    Profesjonalista

  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:157
  • Imię:haha
  • Lokalizacja:Wejherowo
Offline

Napisano 18.01.2012 16:15

jak dodac limit statystyk? xD
dam +
  • +
  • -
  • 2

#15 Raen

    Wszechwiedzący

  • Power User

Reputacja: 158
Profesjonalista

  • Postów:536
  • GG:
  • Imię:Paweł
  • Lokalizacja:......
Offline

Napisano 18.01.2012 19:24

np.
 if(inteligencja_gracza[id]+ilosc <= limit_poziomu/2)
zmieniasz na:
 if(inteligencja_gracza[id]+ilosc <= 200)
powinno działać.
i tak z każdym

Użytkownik Dave13 edytował ten post 18.01.2012 19:25

  • +
  • -
  • 4

angel-little.png


#16 robaloss

    Profesjonalista

  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:157
  • Imię:haha
  • Lokalizacja:Wejherowo
Offline

Napisano 18.01.2012 19:51

a wiesz jak dodac procent np. Kondycja (zwieksza chod o 7%) mysle i nie moge zrobić

UP + dla cb

Użytkownik robaloss edytował ten post 18.01.2012 20:17

  • +
  • -
  • 1

#17 Kolar`.

    Guru

  • Zbanowany

Reputacja: 0
zer0.

  • Postów:704
  • GG:
  • Imię:Kamil
  • Lokalizacja:Jastrzębie Zdrój
Offline

Napisano 18.01.2012 19:53

@UP

Opcja szukaj.

#18 robaloss

    Profesjonalista

  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:157
  • Imię:haha
  • Lokalizacja:Wejherowo
Offline

Napisano 18.01.2012 20:23

szukałem ale nie znalazłem

podaj temat bo znalezc nie moge
  • +
  • -
  • 0

#19 Raen

    Wszechwiedzący

  • Power User

Reputacja: 158
Profesjonalista

  • Postów:536
  • GG:
  • Imię:Paweł
  • Lokalizacja:......
Offline

Napisano 18.01.2012 20:39

robaloss jest w Pluginy, łatki itp. w dziale od Cod'a gdzieś na 8 chyba stronie poszukaj jest kondycja i hp, i to nawet temat od właśnie użytkownika kolar :P
  • +
  • -
  • 0

angel-little.png


#20 robaloss

    Profesjonalista

  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:157
  • Imię:haha
  • Lokalizacja:Wejherowo
Offline

Napisano 18.01.2012 20:43

Dziekować ci dobry człowieku next +
szukałem na swojego coda
dzięki
  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: cod nowy

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

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