Online: 0 użytkownik(ów), 30 gość(ie)
  Nie jesteś zalogowany     UŻYTKOWNICY     PROFIL     OPD     PRYWATNE WIADOMOŚCI     LOGUJ    
Newsy
Nagłówki
Archiwum
Grupa Steam
Shoutbox Wywiady
Tutoriale
Forum / regulamin
Szukaj
Linki
Serwery Mapy
Programy
Zasoby
VERC Collective

source SDK

Strona dla początkujących mapperów zawierająca kurs i porady dotyczące tworzenia map do Counter Strike'a

grinder74.com - Polska Baza Map i Modów SP dla HL1 & HL2

AHA - Andrzej Hrycyk - Polskie mapy do Counter Strike

D.I.P.R.I.P.

 Wejdz na strone The BORG Collective

MAPOSFERA.ORG

NATURAL-SELECTION.PL

CSNation.pl

kzpl.kampno.pl

Bannerek serwisu beta

Forum > Programming/Modding > [hl1 sdk] dodanie jakieś umiejętności, np.fast shoot
 
> 1 <
Autor Wiadomość
ninjabrush
[10] Użytkownik
Ma zadatki na pisarza
     
Dołączył: 29 Marca 2009
Miasto: Opole
 Piątek, 23 Lip 10r, godz. 15:49     #30221   
Witam mam pytanie do osób (ale tylko do osób) które trochę coś pisały w kodzie źródłowym HL1. Mam nadzieję, że 1 osoba odpisze mi
Chcę stworzyć takie coś: naciskamy np. na F1 i włącza nam się umiejętność "Fast Shoot", słychać dźwięk jej aktywacji i od tej chwili możemy strzelać 2x szybciej ^^ Oczywiście takie coś może trwać tylko 30 sekund po tym czasie musimy naładować nasz pasek umiejętności który jest wspólny dla wszystkich skilli. Nie piszę tego posta z pustymi łapami bo już coś napisałem, mało ale jest jakiś początek ^^
O to klasa która reprezentuje umiejętności, zaplanowałem to tak żeby można było mieć tylko 1 aktywną umiejętność naraz.

CPlayerAbilities.h -> http://www.copypastecode.com/33092/
CPlayerAbilities.cpp -> http://www.copypastecode.com/33096/

Potem, np. w kodzie shotguna, w primary attack zmieniłem jeden kawałek:

Kod:
m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.75;
m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 0.75;


na:

Kod:
if( m_pPlayer->GetPlayerAbilities().HasEnabledAbility( FAST_SHOOT ) )
{
m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.75 / 2;
m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 0.75 / 2;
}

else
m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.75;
m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 0.75;


a te GetPlayerAbilities() to funkcja którą dopisałem do klasy playera

Wcześniej testowałem (i nieźle gordon kosił z shotguna) to bo miałem wszystkie funkcje i składniki zadeklarowane w klasie CBasePlayer ale postanowiłem to rozdzielić żeby był porządek i wyskoczyły mi trzy błędy, że brakuje jakieś deklaracji danej klasy albo coś ale sobie z tym później poradzę.
I to all niech jakiś programista wypowie się co o tym sądzi, bo jeszcze nie wiele przyczytałem w SDK o eventach klawiatury itp. Ogólnie mam w planach stworzenie dużo umiejętności, np. jak strzelimy w potworka to go "odrzuci" potężnie do tyłu ^^

Jakby ktoś był ciekawy po co ta wszystko napisałem, bo chcę kiedyś stworzyć moda na podobieństwo gry Deus Ex ale więcej rzeźni. Niestety zrozumienie kodu gry może mi zając kilka tygodni.
Post edytowany: 4 razy, ostatnio Piątek, 23 Lip 10r, godz. 16:08 przez ninjabrush (--- temu)
Dexter
[35] Moderator
Ja wiem najlepiej !
      2891092
Dołączył: 12 Kwietnia 2007
Miasto: Wałcz
Zawód: Hl1,Hl2 C++ Coder
Wiek: 21
 Piątek, 23 Lip 10r, godz. 16:48     #30225   
Ja dawno nie siedziałem w kodzie hl1 ale kiedyś coś tam monciłem. Źle to zaplanowałeś. Bo przecież jak uaktywnisz umiejętność Fast Shoot to chyba nie będziesz zmieniał dodawał do każdej broni if'a ? Zrób w tej funkcji gdzie Fast shoot będzie się włączał żeby zmieniał zmienną m_flNextPrimaryAttack i po krzyku. A odnośnie tego klawisza F1 to troche kombinacji by było. Musisz znaleść kod w którym np. masz zdefiniowany klawisz którym skaczesz. Ale prędzej znajdziesz klawisz kucania. W tym akurat ci nie pomoge bo nigdy się klawiszologią nie interesowałem

BTW. Nie radze teraz już robić modów pod silnik goldsrc. Przecież w to nikt nie gra. Teraz to wszyscy robią pod HL2. Gdybyś robił właśnie na source to bym ci bardziej pomógł bo tam jestem już bardziej obeznany.

Pozdrawiam i zarazem życzę powodzenia.
Dexter.
ninjabrush
[10] Użytkownik
Ma zadatki na pisarza
     
Dołączył: 29 Marca 2009
Miasto: Opole
 Piątek, 23 Lip 10r, godz. 17:29     #30227   
Właśnie myślałem o tym i też się zastanawiam po co wpisywać do każdej broni tego IF'a ale wydaje mi się, że tak jest lepiej bo oprócz tych dwóch instrukcji które przyspieszają dwa razy czas następnego ataku mogę dopisać coś dodatkowego, unikalnego dla danego typu broni ^^ Narazie niech tak zostanie ^^ Defaultowo player ma już ustawioną umiejętność FAST_SHOOT i dobrze wymiata, teraz muszę oblookać te eventy klawiatury żeby sobie włączać i wyłączać kiedy chcę. Tylko może być mały problem bo wiem, że można odbierać pojedyńcze wcisnięcie klawisza albo ciągłe (np. trzymamy ctrl i ciągle kucamy). Później jak mi się uda to dodam jakieś efekty dymku ^^

Niestety nie mogę pisać pod source bo mój komp nawet nie odpali HL2 Zresztą teraz z padniętą kartą grafiki czasem HL1 klatkuje ^^
> 1 <
 
Tylko zarejestrowani użytkownicy mogą brać udział w dyskusji
 
Powered by LDU 604 Czas generowania strony: 0.065 sek
SQL : 0.007 sek - zapytań: 31 - średnio: 0.00022 sek
Top