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

[TUT]Jak dodać limit statystykTutek pokazujący jak dodać limit statystyk

cod nowy limit statystyk

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

#1 HaDeS From HELL

    CoD MoD Fanatyk

  • Użytkownik

Reputacja: 163
Profesjonalista

  • Postów:453
  • Lokalizacja:Szczecin
Offline

Napisano 22.11.2011 20:39

*
Popularny

A więc postanowiłem napisać ten banalny tutek, który opisuje jak dodać limit statystyk typu kondycja,wytrzymałość itp.
To zaczynamy
Szukamy:
#define ZADANIE_POKAZ_INFORMACJE 672
#define ZADANIE_POKAZ_REKLAME 768
#define ZADANIE_USTAW_SZYBKOSC 832
Pod tym dodajemy
/****** KONFIGURACJA ******/
/*** LIMITY STATYSTYK ***/
new limit_zdrowia = xx; // zdrowie
new limit_inteligencji = xx; // inteligencja
new limit_kondycji = xx; // kondycja
new limit_wytrzymalosci = xx; // wytrzymalosc
/*** LIMITY STATYSTYK ***/
W miejsce ,,xx'' dajemy własną wartość (np ,,100")
Teraz Szukamy ,,public PrzydzielPunkty_Handle "
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 go 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;
switch(item)
{
  case 0:
  {
   if(inteligencja_gracza[id] < limit_inteligencji)
   {
    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_zdrowia)
  {
    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_wytrzymalosci)
   {
    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_kondycji)
   {
    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;
}
Następnie szukamy 4 publiców:
-PrzydzielZdrowie
-PrzydzielInteligencje
-PrzydzielKondycje
-PrzydzielWytrzymalosc

W public PrzydzielZdrowie zmieniamy to:
new max_statystyka = get_pcvar_num(cvar_limit_poziomu)/2;
Na to:
new max_statystyka = limit_zdrowia;
W public PrzydzielInteligencje zamieniamy to:
new max_statystyka = get_pcvar_num(cvar_limit_poziomu)/2;
Na to:
new max_statystyka = limit_inteligencji;
W public PrzydzielKondycje zamieniamy to:
new max_statystyka = get_pcvar_num(cvar_limit_poziomu)/2;
Na to:
new max_statystyka = limit_kondycji;
Następnie w public PrzydzielWytrzymalosc zamieniamy to:
new max_statystyka = get_pcvar_num(cvar_limit_poziomu)/2;
Na to:
new max_statystyka = limit_wytrzymalosci;
Całość powinna wyglądać tak:
public PrzydzielZdrowie(id, wartosc)
{
new max_statystyka = limit_zdrowia;
wartosc = min(min(punkty_gracza[id], wartosc), max_statystyka-zdrowie_gracza[id]);
punkty_gracza[id] -= wartosc;
zdrowie_gracza[id] += wartosc;
}
public PrzydzielInteligencje(id, wartosc)
{
new max_statystyka = limit_inteligencji;
wartosc = min(min(punkty_gracza[id], wartosc), max_statystyka-inteligencja_gracza[id]);
punkty_gracza[id] -= wartosc;
inteligencja_gracza[id] += wartosc;
}
public PrzydzielKondycje(id, wartosc)
{
new max_statystyka = limit_kondycji;
wartosc = min(min(punkty_gracza[id], wartosc), max_statystyka-kondycja_gracza[id]);
punkty_gracza[id] -= wartosc;
kondycja_gracza[id] += wartosc;
}
public PrzydzielWytrzymalosc(id, wartosc)
{
new max_statystyka = limit_wytrzymalosci;
wartosc = min(min(punkty_gracza[id], wartosc), max_statystyka-wytrzymalosc_gracza[id]);
punkty_gracza[id] -= wartosc;
wytrzymalosc_gracza[id] += wartosc;
}
Użytkownik : I co teraz ??
Szybcioor : Teraz cieszysz się limitem statystyk :P.

*TuTek został napisany dla zielonych i dla tego bo nie widziałem nigdzie indziej takiego tutka.
*Można podawać pomysły co zmienić lub dodać .
*Wszelkie opinie są nawet nakazane .
*Jeżeli zabrakło jakiegoś kodu w tutku proszę pisać!!.

Użytkownik sebul edytował ten post 23.06.2012 10:29

  • +
  • -
  • 22

#2 _nothing_

    NO ACTA !

  • Zbanowany

Reputacja: 134
Zaawansowany

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

Napisano 22.11.2011 23:01

a jak to działa np. Gdy ma się max lvl 301 lub 1001 .. i każda klasa ma inaczej w statach jedna mniej druga więcej więc czy ni będzie takiej syutacji, że zostaną nam jeszcze punkty do rozdania ?

#3 HaDeS From HELL

    CoD MoD Fanatyk

  • Autor tematu
  • Użytkownik

Reputacja: 163
Profesjonalista

  • Postów:453
  • Lokalizacja:Szczecin
Offline

Napisano 23.11.2011 07:08

Opisze to jakoś tak :
Klasa Snajper ma staty
Zdrowie : 10
inteligencja : 60
kondycja : 40
wytrzymałość : 30
to jak ustawimy sobię limit statystyki każdej po ,,100" i dostaniemy za 201 poziom 400 pkt do rozdania to wtedy max statystyki klasy będą wyglądały jakoś tak:

Zdrowie : 110
inteligencja : 160
kondycja : 140
wytrzymałość : 130

statystyka klasy + limit statystyki
Najlepiej jak by ktoś sobie obliczył ile pkt dostanie za max poziom postaci i jakoś umiejętnie to podzielił na te cztery statystyki.

A jak ktoś by sobie ustawił limit statystyk po 50 w każdej i 201 poziom na serwie to oczywiste by było, że pkt do rozdania by zostały.

Użytkownik Szybcioor edytował ten post 23.11.2011 07:12

  • +
  • -
  • 2

#4 V3ko

    Guru

  • Power User

Reputacja: 83
Zaawansowany

  • Postów:746
  • Lokalizacja:Stopnica
Offline

Napisano 24.11.2011 20:21

Też nie rozumiem działania, to ogranicza tylko max statystyki do rozdania ? To nie szybciej byłoby zamienić

if(inteligencja_gracza[id] < limit_poziomu/2)


na
if(inteligencja_gracza[id] < 200/400/600 itd)


jeśli się mylę w działaniu mógłbyś to wytłumaczyć prościej : ?
  • +
  • -
  • 0

#5 HaDeS From HELL

    CoD MoD Fanatyk

  • Autor tematu
  • Użytkownik

Reputacja: 163
Profesjonalista

  • Postów:453
  • Lokalizacja:Szczecin
Offline

Napisano 24.11.2011 20:58

limit działa w ten sposób, że ogranicza pkt które możesz dodać do statystyki.

Można tak, ale można też tak jak ja to zrobiłem.Ja używam tego sposobu bo jest łatwiej o edycje limitu i dlatego udostępniłem go dla zielonych ;P

Użytkownik Szybcioor edytował ten post 24.11.2011 21:09

  • +
  • -
  • 2

#6 freetu

    Wszechwiedzący

  • Power User

Reputacja: 71
Pomocny

  • Postów:505
  • Lokalizacja:Kwidzyn
Offline

Napisano 27.11.2011 19:59

Da radę z tego tutka wyciągnąć taką zasadę: ?
Np, Jeśli mam 100 inteligencji blokuje się możliwość dodawania statystyk w int + jakiś napis. Wpakuje powiedzmy łącznie 50 pkt w inne statystyki i odblokowuje się znów menu z inteligencją i podobnie z resztą statystyk
:/ trochę koślawo wyjaśniłem.
  • +
  • -
  • 0

#7 HaDeS From HELL

    CoD MoD Fanatyk

  • Autor tematu
  • Użytkownik

Reputacja: 163
Profesjonalista

  • Postów:453
  • Lokalizacja:Szczecin
Offline

Napisano 27.11.2011 20:13

Mniej więcej wiem o co ci chodzi, pewnie da się takie coś zrobić, ale teraz zbytnio nie mam czasu na to.
  • +
  • -
  • 0

#8 Kanrin

    Nowy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:5
  • Lokalizacja:Kraków
Offline

Napisano 02.01.2012 16:26

Wszystko świetnie pięknie i przejrzyście :) Ogólnie leci plusik, ale co jeśli chcemy zablokować np kondycje powyżej 300. Mam server 24001 lvl i chcę żeby klasy nie mogły mieć więcej niż 300 kondycji. A resztę normalnie limit poziomu/2. Czy to oznacza, że w Public przyelpunkty_Handle mam zmienić tylko kod do Kondycji i zmieniam tylko :
new max_statystyka = get_pcvar_num(cvar_limit_poziomu)/2;
na to:
new max_statystyka = limit_kondycji;
??
  • +
  • -
  • 0

#9 HaDeS From HELL

    CoD MoD Fanatyk

  • Autor tematu
  • Użytkownik

Reputacja: 163
Profesjonalista

  • Postów:453
  • Lokalizacja:Szczecin
Offline

Napisano 02.01.2012 16:27

tak, ale lepiej zmienić cały kod bo może miedyś będziesz chciał edytować limit innej statystyki ;P
  • +
  • -
  • 0

#10 Trikolo

    Miszczu

  • Zbanowany

Reputacja: 111
Zaawansowany

  • Postów:348
  • GG:
  • Imię:Trikolo
  • Lokalizacja:Komputer
Offline

Napisano 07.01.2012 22:02

A to trzeba kompilować ? Jak kompiluje to wyskakuje

QTM_CodMod.sp(1) : fatal error 120: cannot read from file: "amxmodx"

Compilation aborted.
1 Error.

#11 HaDeS From HELL

    CoD MoD Fanatyk

  • Autor tematu
  • Użytkownik

Reputacja: 163
Profesjonalista

  • Postów:453
  • Lokalizacja:Szczecin
Offline

Napisano 07.01.2012 22:11

nie masz w kodzie #include <amxmodx>
  • +
  • -
  • 0

#12 Trikolo

    Miszczu

  • Zbanowany

Reputacja: 111
Zaawansowany

  • Postów:348
  • GG:
  • Imię:Trikolo
  • Lokalizacja:Komputer
Offline

Napisano 18.01.2012 15:40

Działa to jak mam szybkie rozdawanie statystyk ?

#13 HaDeS From HELL

    CoD MoD Fanatyk

  • Autor tematu
  • Użytkownik

Reputacja: 163
Profesjonalista

  • Postów:453
  • Lokalizacja:Szczecin
Offline

Napisano 18.01.2012 21:50

zależy jakie masz szybkie rozdawanie statystyk ; D
  • +
  • -
  • 0

#14 bioly05

    Zaawansowany

  • Użytkownik

Reputacja: 4
Nowy

  • Postów:92
  • GG:
  • Lokalizacja:Czarna
Offline

Napisano 13.02.2012 19:51

Witam ma problem ponieważ u mnie w .sma nie ma public PrzydzielZdrowie itp. Proszę o pomoc.
  • +
  • -
  • 0
Zapraszam na ZabijamBoLubie.pl
 
b_350_20_692108_381007_FFFFFF_000000.png

#15 robaloss

    Profesjonalista

  • Użytkownik

Reputacja: 16
Początkujący

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

Napisano 13.02.2012 20:34

Jak dodac to do
inne dodawanie statystyk?

  • +
  • -
  • 0

#16 HaDeS From HELL

    CoD MoD Fanatyk

  • Autor tematu
  • Użytkownik

Reputacja: 163
Profesjonalista

  • Postów:453
  • Lokalizacja:Szczecin
Offline

Napisano 13.02.2012 20:35

jutro lub pojutrze dodam tutek jak dodać limit do ,,inne dodawanie statystyk + łatka od goliatha"
  • +
  • -
  • 1

#17 robaloss

    Profesjonalista

  • Użytkownik

Reputacja: 16
Początkujący

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

Napisano 13.02.2012 21:37

hmm a to by nie dzialalo z twoim limitem?
:D


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 \d(Ile pkt dodac do statow)");
else format(szybkosc, charsmax(szybkosc), "Ile dodawac: \r+%d \d(Ile pkt dodac do statow)", co_ile[szybkosc_rozdania[id]]);
format(inteligencja, charsmax(inteligencja), "\wInteligencja: \r%i \y(Umiejetnosc zwiekszona o \r%i%%\y)", PobierzInteligencje(id, 1, 1, 1), inteligencja_gracza[id]/1);
format(zdrowie, charsmax(zdrowie), "\wZdrowie: \r%i \y(Masz o \r%i%% \yhp wiecej)", PobierzZdrowie(id, 1, 1, 1), zdrowie_gracza[id]/1);
format(wytrzymalosc, charsmax(wytrzymalosc), "\wWytrzymalosc: \r%i \y(Zmniejszone obrazenia o \r%i%%\y)", PobierzWytrzymalosc(id, 1, 1, 1), wytrzymalosc_gracza[id]/1);
format(kondycja, charsmax(kondycja), "\wKondycja: \r%i \y(Biegasz szybciej o \r%i%%\y)", PobierzKondycje(id, 1, 1, 1), kondycja_gracza[id]/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);
}

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 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_inteligencji) {
if(ilosc > imit_inteligencji - inteligencja_gracza[id])
ilosc = limit_inteligencji - inteligencja_gracza[id];
inteligencja_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else ColorChat(id, GREEN, "[COD:MW3]^x01 Maksymalny poziom inteligencji osiagniety");
}
case 2: {
if(zdrowie_gracza[id] < limit_zdrowia) {
if(ilosc > limit_zdrowia - zdrowie_gracza[id])
ilosc = limit_zdrowia - zdrowie_gracza[id];
zdrowie_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else ColorChat(id, GREEN, "[COD:MW3]^x01 Maksymalny poziom zdrowia osiagniety");
}
case 3: {
if(wytrzymalosc_gracza[id] < limit_wytrzymalosci) {
if(ilosc > limit_wytrzymalosci - wytrzymalosc_gracza[id])
ilosc = limit_wytrzymalosci - wytrzymalosc_gracza[id];
wytrzymalosc_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else ColorChat(id, GREEN, "[COD:MW3]^x01 Maksymalny poziom wytrzymalosci osiagniety");
}
case 4: {
if(kondycja_gracza[id] < limit_kondycji) {
if(ilosc > limit_kondycji - kondycja_gracza[id])
ilosc = limit_kondycji - kondycja_gracza[id];
kondycja_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else ColorChat(id, GREEN, "[COD:MW3]^x01 Maksymalny poziom kondycji osiagniety");
}
}

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

return PLUGIN_CONTINUE;
}

powinno byc ok chyba


/****** KONFIGURACJA ******/
/*** LIMITY STATYSTYK ***/
new limit_zdrowia = xx; // zdrowie
new limit_inteligencji = xx// inteligencja
new limit_kondycji = xx; // kondycja
new limit_wytrzymalosci = xx; // wytrzymalosc
/*** LIMITY STATYSTYK ***/

tutaj blad jest


/****** KONFIGURACJA ******/
/*** LIMITY STATYSTYK ***/
new limit_zdrowia = xx; // zdrowie
new limit_inteligencji = xx; // inteligencja
new limit_kondycji = xx; // kondycja
new limit_wytrzymalosci = xx; // wytrzymalosc

tak powinno byc

Użytkownik robaloss edytował ten post 13.02.2012 21:02

  • +
  • -
  • 0

#18 A może sma?

    Godlike

  • Power User

Reputacja: 546
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 13.02.2012 23:07

Yyy... Zmieniłeś coś? xD

Szybcior, a weź mi wytłumacz po co Tobie jest ta zmienna:
new max_statystyka

  • +
  • -
  • 0

#19 HaDeS From HELL

    CoD MoD Fanatyk

  • Autor tematu
  • Użytkownik

Reputacja: 163
Profesjonalista

  • Postów:453
  • Lokalizacja:Szczecin
Offline

Napisano 14.02.2012 07:56

@Kisiel to jest w oryginalnym kodzie cod moda :P Nie pamiętam na zbytnio do czego to było bo dawno już się tam nie bawiłem

@Cały public jednego limitu by wyglądał tak :
public PrzydzielZdrowie(id, wartosc)
{
	new max_statystyka = limit_zdrowia;
	wartosc = min(min(punkty_gracza[id], wartosc), max_statystyka-zdrowie_gracza[id]);
	
	punkty_gracza[id] -= wartosc;
	zdrowie_gracza[id] += wartosc;
}
Już chyba bd wiedział do czego to jest potrzebne :P
Ps. on usunął tylko
/*** LIMITY STATYSTYK ***/
:giggle: to nic nie zmienia w działaniu coda lub limitu ;>


@rabaloss twój kod ma dużo literówek itp jutro dam swój kod.

Użytkownik Mr.Szybcioor edytował ten post 14.02.2012 08:05

  • +
  • -
  • 0

#20 heroes

    Zaawansowany

  • Użytkownik

Reputacja: 21
Życzliwy

  • Postów:118
  • Imię:xxx
  • Lokalizacja:xxx
Offline

Napisano 14.02.2012 09:35

/****** KONFIGURACJA ******/
/*** LIMITY STATYSTYK ***/
new limit_zdrowia = xx; // zdrowie
new limit_inteligencji = xx// inteligencja
new limit_kondycji = xx; // kondycja
new limit_wytrzymalosci = xx; // wytrzymalosc
/*** LIMITY STATYSTYK ***/



przyjrzyj się dokładnie, zabrakło średnika pierdoła ale errora wywali

Użytkownik heroes edytował ten post 14.02.2012 09:37

  • +
  • -
  • 0
Dołączona grafika

Dołączona grafika





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

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

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


    Bing (1)