←  Poradniki, Łatki oraz Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Stary
Jak dodać statystykę GRAWITACJA

  • +
  • -
radim - zdjęcie radim 12.09.2011

1. Otwieramy nasze sma z codmodem i szukamy:
new Float:szybkosc_gracza[33];
i pod tym dodajemy:
new grawitacja_gracza[33];
2. Następnie szukamy:
public client_connect(id) i pod:
inteligencja_gracza[id] = 0;
wpisujemy:
grawitacja_gracza[id] = 0;
3. W public PrzydzielPunkty(id) szukamy:
new tytul[25];
i pod tym dodajemy:
new grawitacja[60];
W tym samym publicu szukamy:
format(kondycja, 59, "Kondycja: \r%i \y(Zwieksza tempo chodu)", kondycja_gracza[id]);
i pod tym dodajemy:
format(grawitacja, 59, "Grawitacja: \r%i \y(Zmniejsza grawitacje)", grawitacja_gracza[id]);
Nadal pozostajemy w tym samym publicu i szukamy:
menu_additem(menu, kondycja);
i pod tym dopisujemy:
menu_additem(menu, grawitacja);
4. W public PrzydzielPunkty_Handler(id, menu, item) szukamy:
case 3:
{
if(kondycja_gracza[id]<100)
kondycja_gracza[id]++;
else
ColorChat(id,GREEN," [CoD MoD]^x01 Maksymalny poziom^x03 zwinnosci^x01 osiagniety.^x03 [%i]", kondycja_gracza[id]);
  }
i pod tym dodajemy:
case 4:
{
if(grawitacja_gracza[id]<100)
grawitacja_gracza[id]++;
else
ColorChat(id,GREEN," [CoD MoD]^x01 Maksymalny poziom^x03 grawitacji^x01 osiagniety.^x03 [%i]", grawitacja_gracza[id]);
  }
czyli całość ma wyglądać tak:
Spoiler


5. Nastepnie w public ResetujPunkty(id) szukamy:
wytrzymalosc_gracza[id] = 0;
i pod tym dodajemy:
grawitacja_gracza[id] = 0;
6. Cały nasz public ZapiszDane(id) podmieniamy z tym:
public ZapiszDane(id)
{
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-%i-cod", nazwa_gracza[id], klasa_gracza[id]);
format(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i", doswiadczenie_gracza[id], poziom_gracza[id], inteligencja_gracza[id], zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_gracza[id], grawitacja_gracza[id]);
nvault_set(g_vault,vaultkey,vaultdata);
}

7. Cały nasz public WczytajDane(id, klasa) podmieniamy z tym:
public WczytajDane(id, klasa)
{
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-%i-cod", nazwa_gracza[id], klasa);
format(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i", doswiadczenie_gracza[id], poziom_gracza[id], inteligencja_gracza[id], zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_gracza[id], grawitacja_gracza[id]);
nvault_get(g_vault,vaultkey,vaultdata,255);

replace_all(vaultdata, 255, "#", " ");

  new doswiadczeniegracza[32], poziomgracza[32], inteligencjagracza[32], silagracza[32], zrecznoscgracza[32], zwinnoscgracza[32], grawitacja[32];

  parse(vaultdata, doswiadczeniegracza, 31, poziomgracza, 31, inteligencjagracza, 31, silagracza, 31, zrecznoscgracza, 31, zwinnoscgracza, 31, grawitacja, 31);

doswiadczenie_gracza[id] = str_to_num(doswiadczeniegracza);
poziom_gracza[id] = str_to_num(poziomgracza)>0?str_to_num(poziomgracza):1;
inteligencja_gracza[id] = str_to_num(inteligencjagracza);
zdrowie_gracza[id] = str_to_num(silagracza);
wytrzymalosc_gracza[id] = str_to_num(zrecznoscgracza);
kondycja_gracza[id] = str_to_num(zwinnoscgracza);
grawitacja_gracza[id] = str_to_num(grawitacja);
  punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]-grawitacja_gracza[id];
}

7. Cały nasz public SprawdzPoziom(id) podmieniamy z tym:
public SprawdzPoziom(id)
{
if(poziom_gracza[id] < 201)
{
while(doswiadczenie_gracza[id] >= doswiadczenie_poziomu[poziom_gracza[id]])
{
poziom_gracza[id]++;
set_hudmessage(60, 200, 25, -1.0, 0.25, 2, 1.0, 2.0, 0.1, 0.2, 2)
ShowSyncHudMsg(id, SyncHudObj3, "Awansowales do poziomu %i!", poziom_gracza[id]);
client_cmd(id, "spk QTM_CodMod/levelup");
}

  punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]-grawitacja_gracza[id];
}
ZapiszDane(id);
}
8. W public UstawSzybkosc(id) szukamy:
if(klasa_gracza[id])
i od razu pod tym dodajemy:
new grav = grawitacja_gracza[id] / 500;
set_user_gravity(id, get_user_gravity(id)-float(grav));

I to wszystko, życzę miłej gry ;P


!!! UWAGA !!!

PRAWA ZASTRZEŻONE. ZAKAZ KOPIOWANIA NA INNE FORA.



@Edit Poprawka jednego szczegółu
Użytkownik radim edytował ten post 13.01.2012 14:00
Odpowiedz

MariO ak Killer - zdjęcie MariO ak Killer 25.09.2011

Jea dzięki wszystko działa o by takich więcej poradników, napracowałeś się widzę ;d
Odpowiedz

BraciiK - zdjęcie BraciiK 09.10.2011

dokladnie ten sam sposob uzywam . :)
Odpowiedz

  • +
  • -
*MARIUSZ* - zdjęcie *MARIUSZ* 13.01.2012

Witam mam problem w tej lini gdy dodam wyskakują mi errory.a i za co odpowiada 500 ?


if(klasa_gracza[id])
new grav = grawitacja_gracza[id] / 500;
set_user_gravity(id, get_user_gravity(id)-float(grav));
fm_set_user_maxspeed(id, szybkosc_gracza[id]);

Errory:


cod.sma(3040) : error 003: declaration of a local variable must appear in a compound block
cod.sma(3040) : warning 217: loose indentation
cod.sma(3040) : error 017: undefined symbol "grav"
cod.sma(3040) : warning 215: expression has no effect
cod.sma(3041) : error 017: undefined symbol "grav"
Odpowiedz

Jeansy - zdjęcie Jeansy 13.01.2012

Leci +
Odpowiedz

  • +
  • -
Jakubiak - zdjęcie Jakubiak 15.02.2012

Wielki refresh. Wgrałem jak trzeba, ale jest pewien problem. Dodaję punkty w statystykę, ale ani od razu, ani w następnej rundzie, ani WCALE ona nie działa. Grawitacja jaka była, taka jest.
Za co odpowiada
new grav = grawitacja_gracza[id] / 500;
to 500? Miało zmniejszać gravity z 800 do 500? Jeśli tak, to niby jak? w jakich proporcjach? 1punkt statysyki = 300gravity mniej? Nie rozumiem. Załączam .sma i proszę o pomoc.

Z góry przepraszam za odświeżenie, ale temat chyba po to jest, aby napisać, jeśli ma się problem. zwłaszcza, że nie jest on zamknięty.Załączony plik  QTM_CodMod.sma   72,33 KB   49 Ilość pobrań
Użytkownik Jakubiak edytował ten post 15.02.2012 22:17
Odpowiedz

  • +
  • -
FORMOZA - zdjęcie FORMOZA 15.02.2012

Dobree ;) Moze przyda sie niekoniecznie do cod-a :)
Odpowiedz

WiWaldi:* - zdjęcie WiWaldi:* 16.02.2012

Mam taki sam problem . :(

cod.sma(3040) : error 003: declaration of a local variable must appear in a compound block
cod.sma(3040) : warning 217: loose indentation
cod.sma(3040) : error 017: undefined symbol "grav"
cod.sma(3040) : warning 215: expression has no effect
cod.sma(3041) : error 017: undefined symbol "grav"

Odpowiedz

MagikGK - zdjęcie MagikGK 09.05.2012

Zadziała na nowych codmodzie?
Odpowiedz