←  Poradniki oraz Łatki

AMXX.pl: Support AMX Mod X i SourceMod

»

Tutorial
Szybsze rozdawanie Statystyk

Koniarek - zdjęcie Koniarek 09.12.2011

Siemka dzisiaj pokaze wam jak zrobic nowe Menu do statystyk tak aby np po nr 5. mozna bylo zmieniac dodawania Statystyk.

Znajdz:
stock const maxAmmo


Pod cala funkcja dodaj:

new const co_ile[] = { 1, 20, 40, 80, 160 } // Wlasnie tutaj zmieniamy co ile maja rosnac punkty.
new szybkosc_rozdania[33];


Teraz Szukamy:
public skilltree(id)


W funkcji znajdz:
[Szybciej biegasz]


Dodaj za:
^n^n\y5. \wIle dodawac: \r%i


Teraz szukasz dalej w tej samej funkcji:
,player_dextery[id]


Dajesz za (bez spacji):
, co_ile[szybkosc_rozdania[id]]


Dalej szukasz:
public skill_menu(id, key){


Dodaj za:
new max_skill=Max statystyk


Dodaj za:
new ilosc = (co_ile[szybkosc_rozdania[id]] > player_point[id]) ? player_point[id] : co_ile[szybkosc_rozdania[id]]


Cale switch(key) zamien na:
Spoiler


Niekumasz? Masz cale skilltree:
Spoiler


Sory ze tak ale nieumiem pisac tematow :(
Odpowiedz

Niby co ? :P - zdjęcie Niby co ? :P 10.12.2011

Opisz na czym polega bardziej to dodwanie statystyk i czy na pewno działa ?
Odpowiedz

Koniarek - zdjęcie Koniarek 10.12.2011

Jak to zrobisz to ja wpiszesz /reset to na cyfre 5 masz zmienianie dodawania punktow czyli standard dodawania to 1 a tam mozesz to zmienic 2 50 100 150 itp..
Odpowiedz

  • +
  • -
Filip1512 - zdjęcie Filip1512 13.12.2011

mały błąd

kompilator źle odczytuje "Max Statystyk", jak zmieniam na "MaxStatystyki" to to samo... ogólnie nie kompiluje, popraw
Użytkownik aerocell edytował ten post 13.12.2011 00:29
Odpowiedz

Koniarek - zdjęcie Koniarek 13.12.2011

Moze napisz po Polsku bo nie kapuje?
Odpowiedz

Niby co ? :P - zdjęcie Niby co ? :P 13.12.2011

Podaj całego loga
Odpowiedz

  • +
  • -
Filip1512 - zdjęcie Filip1512 13.12.2011

Czy to przez k. lokalną, czy przez www - tak samo, czyli:

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

Error: Undefined symbol "Max" on line 1739
Error: Undefined symbol "Statystyk" on line 1739

2 Errors.
Could not locate output file PULPIT:) Untitled.amx (compile failed).


Użytkownik aerocell edytował ten post 13.12.2011 22:19
Odpowiedz

Koniarek - zdjęcie Koniarek 14.12.2011

new max_skill=Max statystyk


Za Max Statystyk dajesz maxymalna ilosc twoich statystyk!
Odpowiedz

  • +
  • -
Filip1512 - zdjęcie Filip1512 14.12.2011

Działa, dzięki
Odpowiedz

  • +
  • -
mianod - zdjęcie mianod 16.12.2011

mam ten sam problem co aerocell tylko jak zmienilem na maxymalna ilosc twoich sttystyk to tez wyskakuje blad
Odpowiedz

Koniarek - zdjęcie Koniarek 16.12.2011

Daj Cala Funkcje skilltree(id)
Odpowiedz

  • +
  • -
mianod - zdjęcie mianod 16.12.2011

dalem i tez nic czekam na odpowiedz
Odpowiedz

Koniarek - zdjęcie Koniarek 16.12.2011

Zadnego kodu niewidze :hmmm:
Odpowiedz

  • +
  • -
mianod - zdjęcie mianod 16.12.2011

proszę

public skilltree(id)
{
new text[513]
new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)
format(text, 512, "\yWybierz Staty - \rPunkty: %i^n^n\y1. \wInteligencja \r[%i] \d[Wieksze obrazenia czarami]^n\y2. \wSila \r[%i] \d[Wiecej zycia o %i]^n\y3. \wZrecznosc \r[%i] \d[Mniejsze obrazenia o %0.0f%%]^n\y4. \wZwinnosc \r[%i] \d[Szybciej biegasz]^n^n\y5. \wIle dodawac: \r%i"
,player_point[id],player_intelligence[id],player_strength[id],player_strength[id]*2,player_agility[id],player_damreduction[id]*100,player_dextery[id], co_ile[szybkosc_rozdania[id]])
keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)
show_menu(id, keys, text)
return PLUGIN_HANDLED
}

public skill_menu(id, key)
{
new max_skill = maxymalna ilosc twoich statystyk!
new ilosc = (co_ile[szybkosc_rozdania[id]] > player_point[id]) ? player_point[id] : co_ile[szybkosc_rozdania[id]]
switch(key)
{
case 0:
{
if(player_intelligence[id]+ilosc <= max_skill){
player_point[id]-=ilosc;
player_intelligence[id]+=ilosc;
}
else client_print(id,print_center,"Maxymalny poziom inteligencji osiagniety")
}
case 1:
{
if (player_strength[id]+ilosc <= max_skill){
player_point[id]-=ilosc;
player_strength[id]+=ilosc;
}
else client_print(id,print_center,"Maxymalny poziom sily osiagniety")
}
case 2:
{
if (player_agility[id]+ilosc <= max_skill){
player_point[id]-=ilosc;
player_agility[id]+=ilosc;
player_damreduction[id] = (47.3057*(1.0-floatpower( 2.7182, -0.06798*float(player_agility[id])))/100)
}
else client_print(id,print_center,"Maxymalny poziom zrecznosci osiagniety")
}
case 3:
{
if (player_dextery[id]+ilosc <= max_skill){
player_point[id]-=ilosc;
player_dextery[id]+=ilosc;
set_speedchange(id)
}
else client_print(id,print_center,"Maxymalny poziom zwinnosci osiagniety")
}
case 4:
{
if(szybkosc_rozdania[id] < charsmax(co_ile)) szybkosc_rozdania[id]++;
else szybkosc_rozdania[id] = 0;
}
}
if (player_point[id] > 0)
skilltree(id)

return PLUGIN_HANDLED

Wiec proszę o odp
Użytkownik mianod edytował ten post 16.12.2011 20:50
Odpowiedz

  • +
  • -
xPerfectx - zdjęcie xPerfectx 17.12.2011

public skilltree(id)
{
new text[513]
new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)
format(text, 512, "\yWybierz Staty - \rPunkty: %i^n^n\y1. \wInteligencja \r[%i] \d[Wieksze obrazenia czarami]^n\y2. \wSila \r[%i] \d[Wiecej zycia o %i]^n\y3. \wZrecznosc \r[%i] \d[Mniejsze obrazenia o %0.0f%%]^n\y4. \wZwinnosc \r[%i] \d[Szybciej biegasz]^n^n\y5. \wIle dodawac: \r%i"
,player_point[id],player_intelligence[id],player_strength[id],player_strength[id]*2,player_agility[id],player_damreduction[id]*100,player_dextery[id], co_ile[szybkosc_rozdania[id]])
keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)
show_menu(id, keys, text)
return PLUGIN_HANDLED
}
public skill_menu(id, key)
{
new max_skill = maxymalna ilosc twoich statystyk!
new ilosc = (co_ile[szybkosc_rozdania[id]] > player_point[id]) ? player_point[id] : co_ile[szybkosc_rozdania[id]]
switch(key)
{
case 0:
{
if(player_intelligence[id]+ilosc <= max_skill){
player_point[id]-=ilosc;
player_intelligence[id]+=ilosc;
}
else client_print(id,print_center,"Maxymalny poziom inteligencji osiagniety")
}
case 1:
{
if (player_strength[id]+ilosc <= max_skill){
player_point[id]-=ilosc;
player_strength[id]+=ilosc;
}
else client_print(id,print_center,"Maxymalny poziom sily osiagniety")
}
case 2:
{
if (player_agility[id]+ilosc <= max_skill){
player_point[id]-=ilosc;
player_agility[id]+=ilosc;
player_damreduction[id] = (47.3057*(1.0-floatpower( 2.7182, -0.06798*float(player_agility[id])))/100)
}
else client_print(id,print_center,"Maxymalny poziom zrecznosci osiagniety")
}
case 3:
{
if (player_dextery[id]+ilosc <= max_skill){
player_point[id]-=ilosc;
player_dextery[id]+=ilosc;
set_speedchange(id)
}
else client_print(id,print_center,"Maxymalny poziom zwinnosci osiagniety")
}
case 4:
{
if(szybkosc_rozdania[id] < charsmax(co_ile)) szybkosc_rozdania[id]++;
else szybkosc_rozdania[id] = 0;
}
}
if (player_point[id] > 0)
skilltree(id)
return PLUGIN_HANDLED


maxymalna ilosc twoich statystyk! to musisz zmienic na swoj max (12 linijka) czyli np max lvl jest 100 to max staty to 50 czyli wpisujesz 50 jak masz 200 to max staty 100 itd
Użytkownik xdx551 edytował ten post 17.12.2011 13:30
Odpowiedz

  • +
  • -
mianod - zdjęcie mianod 17.12.2011

sprawdze czy dziala

wszystko git tylko jak wpisuje/reset to nie wyskkuje mi aby dodac staty
Odpowiedz

  • +
  • -
xPerfectx - zdjęcie xPerfectx 17.12.2011

public skilltree(id)
{
new text[513]
new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)

format(text, 512, "\yWybierz Staty - \rPunkty: %i^n^n\y1. \wInteligencja \r[%i] \d[Wieksze obrazenia czarami]^n\y2. \wSila \r[%i] \d[Wiecej zycia o %i]^n\y3. \wZrecznosc \r[%i] \d[Mniejsze obrazenia o %0.0f%%]^n\y4. \wZwinnosc \r[%i] \d[Szybciej biegasz]^n^n\y5. \wIle dodawac: \r%i"
,player_point[id],player_intelligence[id],player_strength[id],player_strength[id]*2,player_agility[id],player_damreduction[id]*100,player_dextery[id], co_ile[szybkosc_rozdania[id]])

keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)
show_menu(id, keys, text)
return PLUGIN_HANDLED
}

public skill_menu(id, key)
{
new max_skill=100
new ilosc = (co_ile[szybkosc_rozdania[id]] > player_point[id]) ? player_point[id] : co_ile[szybkosc_rozdania[id]]

switch(key)
{
case 0:
{
if(player_intelligence[id]+ilosc <= max_skill){
player_point[id]-=ilosc;
player_intelligence[id]+=ilosc;
}
else client_print(id,print_center,"Maxymalny poziom inteligencji osiagniety")
}
case 1:
{
if (player_strength[id]+ilosc <= max_skill){
player_point[id]-=ilosc;
player_strength[id]+=ilosc;
}
else client_print(id,print_center,"Maxymalny poziom sily osiagniety")
}
case 2:
{
if (player_agility[id]+ilosc <= max_skill){
player_point[id]-=ilosc;
player_agility[id]+=ilosc;
player_damreduction[id] = (47.3057*(1.0-floatpower( 2.7182, -0.06798*float(player_agility[id])))/100)
}
else client_print(id,print_center,"Maxymalny poziom zrecznosci osiagniety")

}
case 3:
{
if (player_dextery[id]+ilosc <= max_skill){
player_point[id]-=ilosc;
player_dextery[id]+=ilosc;
set_speedchange(id)
}
else client_print(id,print_center,"Maxymalny poziom zwinnosci osiagniety")
}
case 4:
{
if(szybkosc_rozdania[id] < charsmax(co_ile)) szybkosc_rozdania[id]++;
else szybkosc_rozdania[id] = 0;
}
}

if (player_point[id] > 0)
skilltree(id)


return PLUGIN_HANDLED
}


moj kod na max lvl 200 dziala wszystko lap jak cos to zmien sobie max staty
Odpowiedz

  • +
  • -
mianod - zdjęcie mianod 18.12.2011

tylko jest problem ja mam sile na 600 reszte na 500 to czy da rade to jakoś zrobić?

czy tez musze zrobic all staty na 600

jeszcze jedno wazne pytanie +ilosc mam zostawic czy wpisac np 600
Odpowiedz

  • +
  • -
xPerfectx - zdjęcie xPerfectx 19.12.2011

2. zostawic tylko tam u gory napisac
Odpowiedz

  • +
  • -
minas - zdjęcie minas 14.09.2012

mam pewien problem z tym czymś (nie wiem jak to nazwać) ponieważ, bo: wgrałem na serwer niby wszystko działa, ale gdy mam np 10 pkt statystyk i chcę rozdawać po 1 to się nie da 1 dodam, a potem pojawia się aby napis "Maxymalny poziom inteligencji osiągnięty" Proszę o pomoc nie wiem co z tym zrobić
sry za odnowienie tematu
Odpowiedz