←  Poradniki, Łatki oraz Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Wytrzymałość perku na 2 perki od cypisa (...

  • +
  • -
Szymek^ - zdjęcie Szymek^ 08.11.2011

Witam. Nie widziałem tuta jak zrobić wytrzymałość 2 perków po wgraniu modyfikacji cypisa z tego tematu:
http://amxx.pl/topic/63359-2-sloty-na-perk/


A więc zaczynamy.
  • Otwieramy plik naszego CodMod'a.
  • Szukamy:
perk_gracza[2][33],
wartosc_perku_gracza[2][33],
  • Dodajemy za:
    wytrzymalosc_perku[2][33];
    
  • W SmiercGraczaPost dodajemy za:
    if(!perk_gracza[0][attacker])
    UstawPerk(attacker, -1, -1, 1, 0);
    else if(!perk_gracza[1][attacker])
    UstawPerk(attacker, -1, -1, 1, 1);
    to:

    if(perk_gracza[0][id])
    {
    wytrzymalosc_perku[0][id] -= (wytrzymalosc_perku[0][id] > 10) ? 10 : wytrzymalosc_perku[0][id]; // 10 to wartosc zabierana za zgon, mozna tutaj to zmienic
    if(wytrzymalosc_perku[0][id] <= 0)
    UstawPerk(id, 0, 0, 0, 0);
    }
    if(perk_gracza[1][id])
    {
    wytrzymalosc_perku[1][id] -= (wytrzymalosc_perku[1][id] > 10) ? 10 : wytrzymalosc_perku[1][id]; // 10 to wartosc zabierana za zgon, mozna tutaj to zmienic
    if(wytrzymalosc_perku[1][id] <= 0)
    UstawPerk(id, 0, 0, 0, 1);
    }
  • Szukamy w public UstawNowaKlase(id)
UstawPerk(id, perk_gracza[0][id], wartosc_perku_gracza[0][id], 0, 0);
UstawPerk(id, perk_gracza[1][id], wartosc_perku_gracza[1][id], 0, 1);

i zamieniamy na:
if(perk_gracza[0][id])
UstawPerk(id, perk_gracza[0][id], wartosc_perku_gracza[0][id], 0, 0);
if(perk_gracza[1][id])
UstawPerk(id, perk_gracza[1][id], wartosc_perku_gracza[1][id], 0, 1);
  • W public UsunUmiejetnosci(id) na końcu dodajemy:
    wytrzymalosc_perku[0][id] = 0;
    wytrzymalosc_perku[1][id] = 0;
  • W public PokazInformacje(id) do hudów dodajemy naszą wytrzymałość:
    ^n[ Wytrzymalosc Perku : %i / 100]^n[ Wytrzymalosc Perku 2 : %i / 100]
    
    i na końcu tej linii:
    , wytrzymalosc_perku[0][id], wytrzymalosc_perku[1][id]
    
    Jeśli chcemy mieć informacje o wytrzymałości perków obiektu na który patrzymy robimy tak samo tylko dajemy indeks target.
  • W public UstawPerk(id, perk, wartosc, pokaz_info, lp) za:
    wartosc_perku_gracza[lp][id] = wartosc;
    
    dodajemy:
if(perk_gracza[lp][id])
wytrzymalosc_perku[lp][id] = nasza_wartosc;
else
wytrzymalosc_perku[lp][id] = nasza_wartosc;


W miejsce "nasza_wartosc" wstawiamy wartość wytrzymałości perku.
Pisząc temat skupiłem się na 2 perkach, bo po co taka modyfikacja na 1 skoro mamy plugin ?
sebul (08.11.2011 07:30):
Popraw post, bo jeszcze w niektórych miejscach ą jakieś niepotrzebne znaki ;]

Użytkownik Szymek^ edytował ten post 09.11.2011 14:56
Odpowiedz

  • +
  • -
Na 5tyk - zdjęcie Na 5tyk 08.11.2011

+ik za robote ;-)
Odpowiedz

  • +
  • -
d0naciak - zdjęcie d0naciak 08.11.2011

Ode mnie też + za chęci
Odpowiedz

_nothing_ - zdjęcie _nothing_ 08.11.2011

nie wiem dlaczego tak się dzieje ale po wybraniu klasy mam 100/100 wytrzymałości 1 i 2 perka . A gdy zabije kogos to wytrzymalosc spada o 10 w dol i jest dobrze . Ale nie chce tego, że po wybraniu klasy mam od razu 100/100 bez zadnego perka .
Odpowiedz

  • +
  • -
Szymek^ - zdjęcie Szymek^ 09.11.2011

Też to zauważyłem u siebie to poprawiłem.
W public UstawNowaKlase(id) zamiast
UstawPerk(id, perk_gracza[0][id], wartosc_perku_gracza[0][id], 0, 0);
UstawPerk(id, perk_gracza[1][id], wartosc_perku_gracza[1][id], 0, 1);
daj:

if(perk_gracza[0][id])
UstawPerk(id, perk_gracza[0][id], wartosc_perku_gracza[0][id], 0, 0);
if(perk_gracza[1][id])
UstawPerk(id, perk_gracza[1][id], wartosc_perku_gracza[1][id], 0, 1);


I będzie w porządku.
Użytkownik Szymek^ edytował ten post 09.11.2011 05:53
Odpowiedz

_nothing_ - zdjęcie _nothing_ 09.11.2011

niby jest ok :) ale jak dostane 1 perka to mam 100/100 i w drugim perku tez pokazuje 100/100 chociaż go nie mam . Da się to naprawić ?
Odpowiedz

  • +
  • -
Szymek^ - zdjęcie Szymek^ 09.11.2011

Wszystko się da. Zaraz pokombinuje i napiszę.

#edit: Nie testowane ale powinno być okej.

Zamień:
wytrzymalosc_perku[1][id] = 100;
na:

if(perk_gracza[lp][id])
wytrzymalosc_perku[lp][id] = 100;
else
wytrzymalosc_perku[lp][id] = 0;

Użytkownik Szymek^ edytował ten post 09.11.2011 14:54
Odpowiedz

sekio - zdjęcie sekio 09.11.2011

Szymek^ mam do cb prośbę dodaj mi to do mojego coda bo dodaje z błędami :P próbowałem kilka razy ale coś za każdym razem źle

Załączone pliki

Odpowiedz

_nothing_ - zdjęcie _nothing_ 09.11.2011

Szymek w " public UsunUmiejetnosc[id] " mam tylko
wytrzymalosc_perku[1][id] = 0;

więc bo tego co ty podałeś nie ma w .sma
Odpowiedz

  • +
  • -
Szymek^ - zdjęcie Szymek^ 10.11.2011

Masz to w funkcji UstawPerk na dole.
Odpowiedz

sekio - zdjęcie sekio 13.11.2011

wkurza już mnie to kombinuje i nic z tego :/
Użytkownik sekio edytował ten post 13.11.2011 16:25
Odpowiedz

  • +
  • -
dawidpuskar - zdjęcie dawidpuskar 04.12.2011

Mogl by mi ktos to zrobic bo mi bledy wyskakuja.

PS. Skompikowalo mi sie, ale jak wgrywam na serwer to caly CoD nie dziala. ;/

Załączone pliki


Użytkownik TYMB4RK edytował ten post 04.12.2011 14:10
Odpowiedz

  • +
  • -
dawidpuskar - zdjęcie dawidpuskar 20.12.2011

mi to nie dziala, pomoze mi ktos. Skompikowalem i bledy.

http://amxx.pl/topic...127#entry337127
Odpowiedz

Name166 - zdjęcie Name166 08.01.2012

a ja mam błąd jak zabije kogoś to nie dostaje perku żadnego

Daję Sma w załączniku proszę o poprawę kodu

Załączone pliki

Odpowiedz

  • +
  • -
HaDeS From HELL - zdjęcie HaDeS From HELL 09.01.2012

dodaj do public smiercgraczapost
za tym
if(poziom_gracza[id] > poziom_gracza[attacker])
   nowe_doswiadczenie += (poziom_gracza[id]-poziom_gracza[attacker])*(doswiadczenie_za_zabojstwo/10);
to
if(!perk_gracza[0][attacker])
		UstawPerk(attacker, -1, -1, 1, 0);
  else if(!perk_gracza[1][attacker])
		UstawPerk(attacker, -1, -1, 1, 1);
@Topic
i w poradniku zmień
to
W SmiercGraczaPost dodajemy za:
na to
W SmiercGraczaPost dodajemy za tym :
bo to trochę ludzi w błąd wprowadza
Użytkownik Mr.Szybcioor edytował ten post 09.01.2012 11:56
Odpowiedz

_nothing_ - zdjęcie _nothing_ 13.01.2012

Mr.Szybcioor popraw też to, że gdy ma się dany perk i powiedzmy masz 70/100 wtrzymałości to po zmianie klasy perk naprawia się automatycznie .. a to duży minus tego :)
Odpowiedz

  • +
  • -
HaDeS From HELL - zdjęcie HaDeS From HELL 13.01.2012

_nothing_ Znajdź

public UstawNowaKlase(id)

i przed
WczytajDane(id, klasa_gracza[id]);

dodaj takie coś
new temp;
if(perk_gracza[0][id])
{
  temp = wytrzymalosc_perku[0][id];
  UstawPerk(id, perk_gracza[0][id], wartosc_perku_gracza[0][id], 0, 0);
  wytrzymalosc_perku[0][id] = temp;
}
if(perk_gracza[1][id])
{
  temp = wytrzymalosc_perku[1][id];
  UstawPerk(id, perk_gracza[1][id], wartosc_perku_gracza[1][id], 0, 1);
  wytrzymalosc_perku[1][id] = temp;
}

Powinno śmigać ;]
Użytkownik Mr.Szybcioor edytował ten post 13.01.2012 20:06
Odpowiedz

_nothing_ - zdjęcie _nothing_ 13.01.2012

Mr.Szybcioor ja już to miałem naprawione tylko chciałem Cię o tym uprzedzić bo jeszcze nikt nie pisał o tym. Dodaj ten post do 1 postu :)
Odpowiedz

  • +
  • -
HaDeS From HELL - zdjęcie HaDeS From HELL 14.01.2012

Jak to nie mój temat xD
Odpowiedz

sekio - zdjęcie sekio 18.01.2012

zrób gotowca zaoszczędzi się na poprawianiu błędów
Odpowiedz